HTTP报文--《HTTP权威指南》

报文流

HTTP报文是HTTP应用程序之间发送的数据块,这些数据块以文本形式的元信息开头,描述报文内容、含义、以及可选数据;

从一个客户端发出请求报文到服务器返回响应报文,都是向下游流动,即没有报文是逆向流动的,所有报文的发送者都在接受者的上游;

报文组成

报文可以分为两类:请求报文和响应报文
报文的组成部分:起始行(描述报文)、首部块(包含属性)、主体(可选、包含数据)

请求报文与响应报文

请求报文:一般为客户端向服务器请求的数据
响应报文:服务器将结果返回给客户端

  • 区别:只有起始行的语法有所不同

请求报文


响应报文


各部分名词解释

  • method:客户端希望对服务器资源执行的动作,例如GET、POST等
  • request-URL:对请求资源命名,或路径完整的URL
  • version:HTTP版本,格式:HTTP/.;major主版本号,minor次版本号
  • status-code 状态码:描述请求过程中发生的情况,比如成功,失败,重定向等等;
  • reason-phrase 状态短语 状态码的刻度版本,包含行终止序列之前的所有文本,只对人类有意义
  • headers:首部
  • entity-body:实体的主体部分,包含任意数据组成的数据块,也可能是CRLF的结束

报文具体组成

起始行:请求报文起始行说明要做什么,响应报文起始行说明发生了什么

  • 请求行(请求行):对服务器资源的操作,包含一个方法(服务器应执行的操作)和一个请求URL(对哪个资源执行该方法)以及HTTP版本
  • 响应行:服务器将状态信息和结果数据返回给客户端,包含HTTP版本,数字状态码,以及原因短语
  • 方法:告知服务器应该做什么操作,其中POST、PUT包含主体
  • 状态码:服务器告知客户端发生了什么事,
  • 原因短语
  • 版本号

首部

首部分类
  • 通用首部:客户端与服务器都可以使用,例如Date、Connection、Update等
  • 请求首部:请求报文特有的;例如Client-IP、Host、Referer等,还可细分为Accept首部、条件请求首部、安全请求首部、代理请求首部
  • 响应首部:响应报文特有,协助客户端处理响应,可细分为协商首部、安全响应首部
  • 实体首部:用于应对实体主体的首部,提供了有关实体及其内容的信息,可分为内容首部以及实体缓存首部;
  • 扩展首部:非标准首部、开发者自己创建

实体的主体部分

实体的主体是HTTP报文要传输的内容,包括多种类型的数字数据等;

各类方法

安全方法:不会对服务器产生影响,不引起服务端的变化,GET与HEAD都是安全的
  • GET:请求服务器发送资源
  • HEAD:与GET类似,但服务器在响应中只返回首部,不返回实体主体,先对资源首部进行检查,判断其类型、查看对象是否存在、测试资源是否被修改
  • PUT:向服务器写入数据
  • POST:向服务器输入数据,以及用来支持HTML表单
  • TRACE:需要跨过防火墙、代理、网关等需要被修改的时候用到它
  • OPTIONS:查询服务器支持哪些方法
  • DELETE:请求服务器删除URL指定的资源
  • 扩展方法:未在HTTP/1.1规范中定义的方法,扩展的手段,常用:LOCK(锁定)MKCOL(用户创建自有)COPY(复制资源)MOVE(移动资源)

状态码

  • 100~199:信息状态码
  • 200~299:成功状态码
  • 300~399:重定向状态码
  • 400~499:客户端错误状态码
  • 500~599:服务端错误状态码

你可能感兴趣的:(HTTP报文--《HTTP权威指南》)