最近在看nodejs
,发现须要不少http
相关的知识,就去找了本「图解HTTP」
看,
记录下本身以为比较重要的知识点html
http:// | user:passwd | @www.cheesekun.top | :80 | /dir/index.html | ?uid=1 | #ch1 |
---|---|---|---|---|---|---|
协议方案名 | 登陆信息 | 服务器地址 | 服务器端口 | 文件路径 | 查询字符串 | 片断标识符 |
因为字段类别不少,只挑选了一些打开网页常见的字段node
请求报文和相应报文都会使用的首部web
首部字段名 | 说明 | 某参数 | 做用 |
---|---|---|---|
Connection | 逐跳首部,链接的管理 | keep-alive | 客户端与服务器进行持久链接,可用参数close断开 |
从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容,客户端信息,响应内容相关优先级等信息浏览器
首部字段名 | 说明 | 参数 | 做用 |
---|---|---|---|
Accept | 用户代理可处理相对优先级的媒体类型 | text/html,application/xhtml+xml,image/webp,/;q=0.8 | 优先采用text和html格式,q为优先权重值 |
Accept-Encoding | 优先的内容编码 | gzip,deflate,sdch | 支持gzip等内容编码及其优先级 |
Accept-Language | 优先的语言(天然语言) | zh-CN,zh;q=0.8,en-us,en; | 优先中文 |
Content-Length | 实体主题的大小(单位:字节) | ||
Host | 请求资源所在的服务器 | ||
Referer | 对请求中URI的原始获取方 | https://www.google.com | 该页面是在google连接而来 |
User-Agent | HTTP客户端程序的信息 | ||
X-Request-With | 客户端的请求是Ajax请求仍是其余请求 |
从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息缓存
首部字段名 | 说明 | 某参数 | 做用 |
---|---|---|---|
Accept-Ranges | 是否接受字节范围请求 | ||
Content-Type | 实现主体的媒体类型 | ||
Date | 建立报文的日期时间 | ||
ETag | 资源的匹配信息 | "一串字符" | 标识全部资源 |
Expires | 实体主体过时的日期时间 | 一个日期 | 缓存超过该日期会从源服务器获取资源 |
Location | 转移URI指向 | 一个URI | 配合3xx,重定向提示转移URI路径 |
Last-Modified | 资源的最后修改日期时间 | ||
Pragma | 报文指令 | no-cache | 兼容http1.0,http1.1使用Cache-Conrol:no-cache,表示不接收缓存 |
Transfer-Encoding | 指定报文主体的传输编码方式 | chunked(分块) | 分块传输编码 |
Vary | 代理服务器缓存的管理 | Accept-Language | 从代理服务器拿取A-L的缓存,若无,则从源服务器拿 |
针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息服务器
状态码告知从服务器端返回的请求结果app
状态码 | 类别 | 缘由短语 |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 须要进行附加操做以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器没法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
200 OK:表示客户端的请求被服务器成功处理ui
204 No Content:该状态码表明服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不容许返回任何实体的主体。好比,当从浏览器发出请求处理后,返回 204 响应,那么浏览器显示的页面不发生更新。google
206 Partial Content:该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含由Content-Range 指定范围的实体内容。编码
3XX 响应结果代表浏览器须要执行某些特殊的处理以正确处理请求。
301 Moved Permanently:永久性重定向。该状态码表示请求的资源已被分配了新的 URI,之后应使用资源如今所指的 URI。也就是说,若是已经把资源对应的 URI保存为书签了,这时应该按 Location 首部字段提示的 URI 从新保存。
302 Found:临时性重定向:该状态码表示请求的资源已被分配了新的URI,但愿用户本次请求能使用新的URI。302和301很类似,302表示的URI并非永久性移动,换句话说就是URI还有可能发生变化。
303 See Other:该状态码表示因为请求对应的资源存在着另外一个 URI,应使用 GET方法定向获取请求的资源。303和302有着类似的功能,他们之间的区别是303状态码表示明确客户端采用GET请求获取资源
304 Not Modified:该状态码表示客户端发送附带条件的请求时,服务器端容许请求访问资源,但未知足条件的状况。304状态码返回时,不包含任何响应的主题部分。跟重定向没有关系。
4XX响应结果表示错误发生在客户端
400 Bad Request:该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器会像 200 OK 同样对待该状态码。
401 Unauthorized:该状态码表示发送的请求须要有经过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。
403 Forbidden:该状态码代表对请求资源的访问被服务器拒绝了。
404 Not Found:该状态码代表服务器上没法找到请求的资源。
5XX 的响应结果代表服务器自己发生错误。
500 Internal Server Error:该状态码代表服务器端在执行请求时发生了错误。
503 Service Unavailable:该状态码代表服务器暂时处于超负载或正在进行停机维护,如今没法处理请求。
挺好的一本书,172张图片也特别帮助理解。
原文:cheesekun.top