HTTP报文

HTTP报文:它是HTTP应用程序之间发送的数据块。

 详细说:这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。这些报文都是在客户端、服务器、和代理之间的流动。

HTTP报文的执行顺序:

  一次HTTP请求,HTTP报文会从

    “客户端” --------> "代理" ------------> "服务器"。

  在服务器工作完成之后

    "服务器" -----------> "代理"  ---------------->"客户端"

报文的语法:

   1.请求报文 :向web服务器请求的一个动作

格式:

   起始行 : <method>  <request-URL>  <version>

   头部 :<headers>

   主体 :<entity-body> 

  2.响应报文 : 它会将请求的结果返回给客户端

格式 :

  起始行 :<version> <status> <resason-phrase>

  头部     :<headers>

  主体 : <entity-body>

 展示一些假想请求报文和响应报文

  

语法的详细介绍:

  1.方式<method> : 客户端希望服务器对资源执行的动作,是一个单独的词 如:GET、 POST或HEAD

  2.请求URL <request-URL> : 要直接与服务器进行对话,只要请求URL是资源的绝对路径就可以了,服务器可以假定自己是URL的主机端口

  3.版本<version> : 报文所使用的HTTP版本 : 格式 :HTTP/<主要版本>.<次要版本>

  4.状态码 <status-code> : 状态码是三位数字,描述了请求过程中所发生的情况,每个状态码的第一位数字都用于描述状态的一般类别 (比如 : “成功” 、 “出错”等)

  5.原因短语<reason-phrase> : 数字状态码的可读版本,包含行终止序列之前的所有版本。原因短语只对人类有意义,因此尽管响应 HTTP/1.0 200 Not OKk和 HTTP/1.0 200 OK  中间原因短语的含义不同,但同样都会被当做成功指示处理

  6.头部<header> : 可以有零个或者多个头部,每一个首部都包含一个名字,后面跟着一个冒号(:)。 然后是一个可选的空壳,接着是一个值,最后是一个(CRLF ) 首部是由一个空行(CRLF)结束的,表示了头部的列表结束和实体的主体部分的开始

  7.实体的主体部分 <entity-body>: 实体的主体部分包含一个由任意数据组成的数据块,并不是所有的报文都包含实体的主体部分,有时;报文只是以一个(CRLF)结束

原文地址:https://www.cnblogs.com/peace23/p/10472695.html