请求行与相应行

Posted wqbin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请求行与相应行相关的知识,希望对你有一定的参考价值。

请求行

技术图片

常见方法(RFC7231)

技术图片

 

用于文档管理的WEBDAV 方法(RFC2518) 

技术图片

 

 

HTTP响应行

技术图片

其中,HTTP/1.1表示协议版本;200表示状态码;OK是状态说明。

2、状态码

根据响应结果的类型,大致分为以下几类:

2.1 1XX(信息类)

请求已接收到,需要进一步处理才能完成,HTTP1.0不支持

该类型状态码表示接收到请求并且继续处理。

  • 100 Continue:客户端必须继续发出请求,上传大文件前使用
    • 由客户端发起请求中携带 Expect:100-continue 头部触发
  • 101 Switch Protocols:协议升级使用,客户端要求服务器根据请求转换HTTP协议版本。
    • 由客户端发起请求中携带 Upgrade:头部触发,如升级 websocket 或者http/2.0
  • 102 Processing:
    • WebDAV 请求可能包含许多涉及文件操作的子请求,需要很长时间才能完成请求。该代码表示服务器已经收到并正在处理请求,但无响应可用。这样可以防止客户端超时,并假设请求丢失

2.2 2XX(响应成功)

该类型状态码表示动作被成功接收、理解和接受。

  • 200,表明该请求被成功地完成,所请求的资源发送到客户端。
  • 201 Created:有新资源在服务器端被成功创建。提示知道新文件的URL。
  • 202 Accepted:服务器接收并开始处理请求,但请求未处理完成。这样一个模糊的概念是有意如此设计,可以覆盖更多的场景。例如异步、需要长时间处理的任务。
  • 203 Non-Authoritative Information:返回信息不确定或不完整。
  • 204 No Content:收到请求,但返回信息为空。
  • 205 Reset Content:成功执行了请求且不携带响应包体,同时指明客户端需要更新当前页面视图
  • 206 Partial Content:使用range协议时返回部分响应内容时的响应码
  • 207 Multi-Status:RFC4918,在WEBDAV协议中以XML返回多个资源的状态。
  • 208Already Reported:RFC5842,为避免相同集合下资源在207响应码下重复上报,使用208可以使用父集合的响应码。

2.3 3XX(重定向类)

重定向使用Location 指向的资源或者缓存中的资源。在RFC2068中规定客户端重定向次数不应超过5次,以防止死循环。

该类型状态码表示为了完成指定的动作,必须接受进一步处理。

  • 300 Multiple Choices:资源有多种表述,通过300返回给客户端后由其自行选择访问哪一种表述。由于缺乏明确的细节,300很少使用。
  • 301 Moved Permanently:资源永久性的重定向到另一个URI中。
  • 302,请求的网页被重定向到新的地址。
  • 303,建议用户访问其他URL或访问方式。
  • 304,自从上次请求后,请求的网页未修改过。
  • 305,请求的资源必须从服务器指定的地址获得。
  • 306,前一版本HTTP中使用的代码,现已不再使用。
  • 307,声明请求的资源临时性删除。

2.4 4XX(客户端错误类)

该类型状态码表示请求包含错误语法或不能正确执行。

  • 400,客户端请求有语法错误。
  • 401,请求未经授权。
  • 402,保留有效ChargeTo头响应。
  • 403,禁止访问,服务器收到请求,但拒绝提供服务。
  • 404,可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。
  • 405,用户在Request-Line字段定义的方法不被允许。
  • 406,根据用户发送的Accept,请求资源不可访问。
  • 407,类似401,用户必须首先在代理服务器上取得授权。
  • 408,客户端没有在用户指定的时间内完成请求。
  • 409,对当前资源状态,请求不能完成。
  • 410,服务器上不再有此资源。
  • 411,服务器拒绝用户定义的Content-Length属性请求。
  • 412,一个或多个请求头字段在当前请求中错误。
  • 413,请求的资源大于服务器允许的大小。
  • 414,请求的资源URL长于服务器允许的长度。
  • 415,请求资源不支持请求项目格式。
  • 416,请求中包含Range请求头字段,在当前请求资源范围内没有range指示值。
  • 417,服务器不满足请求Expect头字段指定的期望值。

2.5 5XX(服务器错误类)

该类型状态码表示服务器或网关错误。

  • 500,服务器错误。
  • 501,服务器不支持请求的功能。
  • 502,网关错误。
  • 503,无法获得服务。
  • 504,网关超时。
  • 505,不支持的http版本。

3、响应头

是对响应的一种限定,包含很多属性。常用的属性有:

  • Location,实现请求重定向。
  • Server,服务器的基本信息。
  • Content-Encoding,服务器发送数据时使用的压缩格式。
  • Content-Language,发送的数据所用的语言。
  • Content-Type,所发送的数据的类型。
  • Content-Length,发送数据的大小。
  • Set-Cookie,把cookie发送到客户端。
  • Last-Modified,指示资源的最后修改日期和时间。

以上是关于请求行与相应行的主要内容,如果未能解决你的问题,请参考以下文章

Nginx的重要概念之request

java webserver-封装请求协议2

HTTP探索之初学乍练

HTTP协议请求与相应详解

HTTP协议

fidder 命令行的用法汇总