`

HTTP权威指南之HTTP报文

阅读更多

HTTP报文

  •  报文的组成
HTTP报文是简单的格式化数据块,由三个部分组成:起始行(start line),首部(header),主体(body)
  • 报文的语法
起始行:请求报文的起始行说明要做些什么,相应报文的起始行说明发生了什么。
  1. 请求行:包含一个方法,一个请求url, http的版本,由空格分割
  2. 响应行:包含HTTP版本, 数字状态码, 描述状态的原因短语,由空格分割
  3. 方法:HTTP规范常用的七种方法GET,HEAD, POST, PUT, TRACE, OPTIONS, DELETE,并非所有服务器都实现了这些方法。服务器还可以实现一些 自定义的请求方法,这个自定义方法是对http规范的扩展,称为扩展方法
  4. 状态码:用来告诉客户端,发生了什么事情。状态码分类
  5. 原因短语:为状态码提供可读的文本形式的解释。
  6. 版本号:说明了客户端或者服务器支持的最高HTTP版本
首部:http规范定义了几种首部字段, 应用程序可以随意的发明 自己的首部,每个首部都由  名字+:(冒号)+空格(可选)+字段值+CRLF
主体:主体为HTTP报文的负荷,可以承载诸多类型的数据,比如图片, 视频,html文档,软件程序, 电子邮件等。
 
  • 方法
  1. GET方法:用于请求服务器某个资源
  2. HEAD方法:与GET类似,但服务器只返回首部,不返回主体。
  3. PUT方法:向服务器写入文档。
  4. POST方法:通常用于HTML表单数据的提交。
  5. TRACE方法:主要用于诊断,查看代理或者其他应用程序对请求报文修改。
  6. OPTIONS方法:请求服务器,告知其支持的方法有哪些
  7. DELETE方法:删除服务器上指定的资源
  8. 扩展方法:例如LOCK,MKCOL,COPY, MOVE等。
  • 状态码
  1. 100-199 信息性状态码,HTTP/1.1引入,很少用。
  2. 200-299  成功状态码, 已定义的有200-206。
  3. 300-399  重定向状态码, 重定向状态码告知客户端使用替代的位置来访问资源。定义了300-307
  4. 400-499  客户端错误状态码,定义了400-417
  5. 500-599  服务器错误状态码,定义了500-505
  • 首部
可以将首部分为5个主要的类型:
  1. 通用首部,请求报文和响应报文均可用。常用的通用首部有Connection, Date, Via,Cache-control等。
  2. 请求首部, 只用于请求报文,比如信息性请求首部Host, Referer,User-Agent等, Accept请求首部, 条件请求首部Expect, IF-Match, If-modify-since,If-range,range等,安全请求首部cookie, authorization等,代理请求首部 proxy-connection等。
  3. 响应首部, 只用于响应报文, 比如信息性响应首部Server, Age等, 协商响应首部Accept-range,vary等,安全响应首部Set-cookie, Proxy-Authenticate等
  4. 实体首部, 提供了有关主体的信息,比如信息性首部allow, location,内容首部Content-*, 缓存首部Etag,  expires, last-modifed等
  5. 扩展首部, 非标准首部,有应用程序开发者创建。
 
 
 
 
  • 大小: 65.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics