• 请求行与相应行


    请求行

    http8种常见方法(RFC7231)

    restful常用四种请求方式

    • GET[select]  请求会向数据库发索取数据的请求,从而来获取信息,其只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容。无论进行多少次操作,结果都是一样的。
    • PUT[update]  请求是向服务器端发送数据的,从而改变信息,其用来修改数据的内容,但是不会增加数据的种类等,无论进行多少次PUT操作,其结果并没有不同。
    • POST[insert]请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源.几乎目前所有的提交操作都是用POST请求的。
    • DELETE[delete]请求是用来删除某一个资源的。

    实际上

    • GET[select]  请求会向数据库发索取数据的请求,从而来获取信息,其只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容。无论进行多少次操作,结果都是一样的。
    • PUT[update]  请求是向服务器端发送数据的,从而改变信息,其用来修改数据的内容,但是不会增加数据的种类等,无论进行多少次PUT操作,其结果并没有不同。

    用于文档管理的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 OK,表明该请求被成功地完成,所请求的资源发送到客户端。
    • 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返回多个资源的状态。
    • 208 Already Reported:RFC5842,为避免相同集合下资源在207响应码下重复上报,使用208可以使用父集合的响应码。

    2.3 3XX(重定向类)

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

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

    • 300 Multiple Choices:资源有多种表述,通过300返回给客户端后由其自行选择访问哪一种表述。由于缺乏明确的细节,300很少使用。
    • 301 Moved Permanently:资源永久性的重定向到另一个URI中。
    • 302 Found:资源临时的重定向到另一个URI中。
    • 303 See Other:重定向到其他资源,常用于POST/PUT等方法的响应中。
    • 304 Not Modified:当客户端拥有可能过期的缓存时,会携带缓存的标识etag、时间等信息询问服务器缓存是否仍可复用,而304是告诉客户端可以复用缓存。自从上次请求后,请求的网页未修改过。
    • 305,请求的资源必须从服务器指定的地址获得。
    • 306,前一版本HTTP中使用的代码,现已不再使用。
    • 307 Temporary Redirect:类似302,但明确重定向后请求方法必须与原请求方法相同,不得改变。,声明请求的资源临时性删除。

    2.4 4XX(客户端错误类)

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

    • 400 Bad Request:服务器认为客户端出现了错误,但不能明确判断为以下哪种错误时使用此错误码。例如HTTP请求格式错误。客户端请求有语法错误。
    • 401  Unauthorized:用户认证信息缺失或者不正确,导致服务器无法处理请求,请求未经授权。
    • 402,保留有效ChargeTo头响应。
    • 403  Forbidden:服务器理解请求的含义,但没有权限执行此请求,禁止访问,服务器收到请求,但拒绝提供服务。
    • 404  Not Found:服务器没有找到对应的资源,可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。
    • 405  Method Not Allowed:服务器不支持请求行中的 method 方法,用户在Request-Line字段定义的方法不被允许。
    • 406 Not Acceptable:对客户端指定的资源表述不存在(例如对语言或者编码有要求),服务器返回表述列表供客户端选择。根据用户发送的Accept,请求资源不可访问。
    • 407 Proxy Authentication Required:对需要经由代理的请求,认证信息未通过代理服务器的验证,类似401,用户必须首先在代理服务器上取得授权。
    • 408 Request Timeout:服务器接收请求超时,客户端没有在用户指定的时间内完成请求。
    • 409 Conflict:资源冲突,例如上传文件时目标位置已经存在版本更新的资源,对当前资源状态,请求不能完成。
    • 410 Gone:服务器没有找到对应的资源,且明确的知道该位置永久性找不到该资源,服务器上不再有此资源。
    • 411  Length Required:如果请求含有包体且未携带Content-Length头部,且不属于chunk类请求时,返回411,服务器拒绝用户定义的Content-Length属性请求。
    • 412 Precondition Failed:复用缓存时传递的If-Unmodified-Since或If-None-Match 头部不被满足,一个或多个请求头字段在当前请求中错误。
    • 413 Payload Too Large/Request Entity Too Large:请求的包体超出服务器能处理的最大长度,请求的资源大于服务器允许的大小。
    • 414 URI Too Long:请求的URI超出服务器能接受的最大长度,请求的资源URL长于服务器允许的长度。
    • 415 Unsupported Media Type:上传的文件类型不被服务器支持,请求资源不支持请求项目格式。
    • 416 Range Not Satisfiable:无法提供Range 请求中指定的那段包体,请求中包含Range请求头字段,在当前请求资源范围内没有range指示值。
    • 417 Expectation Failed:对于Expect 请求头部期待的情况无法满足时的响应码,服务器不满足请求Expect头字段指定的期望值。

    2.5 5XX(服务器错误类)

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

    • 500 Internal Server Error:服务器内部错误,且不属于以下错误类型,服务器错误。
    • 501 Not Implemented:服务器不支持实现请求所需要的功能,服务器不支持请求的功能。
    • 502 Bad Gateway:代理服务器无法获取到合法响应,网关错误。
    • 503 Service Unavailable:服务器资源尚未准备好处理当前请求,无法获得服务。
    • 504 Gateway Timeout:代理服务器无法及时的从上游获得响应,网关超时。
    • 505 HTTP Version Not Supported:请求使用的HTTP协议版本不支持,不支持的http版本。
    • 507 Insufficient Storage:服务器没有足够的空间处理请求
    • 508 Loop Detected:访问资源时检测到循环
    • 511 Network Authentication Required:代理服务器发现客户端需要进行身份验证才能获得网络访问权限

    3、响应头

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

    • Location,实现请求重定向。
    • Server,服务器的基本信息。
    • Content-Encoding,服务器发送数据时使用的压缩格式。
    • Content-Language,发送的数据所用的语言。
    • Content-Type,所发送的数据的类型。
    • Content-Length,发送数据的大小。
    • Set-Cookie,把cookie发送到客户端。
    • Last-Modified,指示资源的最后修改日期和时间。
  • 相关阅读:
    notes: the architecture of GDB
    How systems researchers build systems
    spark1.1.0源码阅读-executor
    spark1.1.0源码阅读-taskScheduler
    spark1.1.0源码阅读-dagscheduler and stage
    akka简单示例-2
    环境安装与项目配置
    安装zsh
    linux mysql 密码修改
    django-debug-toolbar 安装及配置 django性能监控及调试
  • 原文地址:https://www.cnblogs.com/wqbin/p/12080642.html
Copyright © 2020-2023  润新知