报文

  1、什么是报文

    HTTP报文:它是HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着

  可选的数据部分。这些报文都是在客户端、服务器和代理之间流动。

  2、报文的语法

     报文的语法:所有的HTTP报文都可以分为两类,请求报文和响应报文。请求和响应报文的基本报文结构大致是相同的,只有起始行的语法有所不同。

  请求报文:顾名思义就是它会向Web服务器请求一个动作

  请求报文的格式:

  起始行(请求行): <method> <request-URL> <version>(该行包含了一个方法和一个请求的URL,还包含HTTP 的版本。)

  头部(请求头部):   <headers>

  主体(请求数据):   <entity-body>

  

  响应报文:服务器将请求的结果返回给客户端。

  响应报文的格式:

  起始行:  <version> <status> <reason-phrase>(该行包含了响应报文使用的HTTP版本、数字状态码、原因短语。)

  头部:    <headers>

  主体:    <entity-body>

  (1)请求行

    请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /list.html HTTP/1.1。

    1).请求方法有:GET、POST、HEAD。

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

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

    4).状态码(status-code):状态码是三位数字,描述了请求过程中所发生的情况。每个状态码的第一位数字都用于描述状态的一般类别(比如,

    “成功”、“出  错”等等)

    5).原因短语(reason-phrase):数字状态码的可读版本,包含行终止序列之前的所有文本。原因短语只对人类有意义,因此,尽管响应行

                      HTTP/1.0 200 NOT OK和HTTP/1.0 200 OK中原因短语的含义不同,但同样都会被当作成功指示处理

    (2)请求头部

      HTTP首部字段向请求和响应报文中添加了一些附加信息。本质上来说,它们只是一些名/值对的列表。头部和协议配合工作,共同决定了客户端

   和服务器能做什么事情。

    (3)请求数据

     实体的主体部分包含一个由任意数据组成的数据块,并不是所有的报文都包含实体的主体部分,有时,报文只是以一个CRLF结束。

     假想的请求和响应报文:

     

原文地址:https://www.cnblogs.com/970101fly/p/10263973.html