HTTP报文语法/HTTP组成

    一、HTTP报文分类:请求报文响应报文

    请求报文会向Web服务器请求一个动作,响应报文会将请求的结果返回给客户端

    请求报文格式:

    <method>  <request-URL>  <version>            这一行称为:请求行或请求的起始行

    <header>

 

    <entity-body>

 

    响应报文格式:

    <version>  <status>  <reson-phrase>              这一行称为:响应行或响应的起始行

    <header>

 

    <entity-body>

 

    二、下面是对各部分的描述:

  • 方法(method)

    客户端希望服务器对资源执行的动作。是一个单独的词,如GET、POST

  • 请求URL(request-URL)

    所请求资源,或者URL路径组件的完整URL

  • 版本(version)

    报文所使用的HTTP版本,格式:HTTP/<major>.<minor>

  • 状态码(status-code)

    描述请求过程中发生的情况。每个状态码的第一位数字用于描述状态的一般类别(成功、出错等)

  • 原因短语(reson-phrase)

    数字状态码的可读版本(描述操作状态的文本形式的原因短语)

  • 首部(header)

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

    首部字段向请求和响应报文中添加了一些附加信息。

    本质上来说,它们只是一些名/值对的列表。

    首部的分类:

    1)通用首部:既可出现在请求报文中,也可出现在响应报文中。

        比如Date首部就是一个通用首部,每一端都可以它来说明构建报文的时间和日期:

        Date: Tue, 3 Oct 1974 02:16:00 GMT

    2)请求首部:提供更多有关请求的信息,请求报文特有的。为服务器提供了一些额外信息,比如客户端希望接收什么类型的数据。例如,Accept首部就是用来告知

         服务器客户端会接受与期请求相符的任意媒体类型:

         Accept: */*

    3)响应首部:提供更多有关响应的信息,以便为客户端提供信息(如,客户端在与哪种类型的服务器进行交互)。例如,Server首部就是用来告知客户端它在与一个

        版本 1.0 的 Tiki-Hut 服务器进行交互:

        Server: Tiki-Hut /1.0

    4)实体首部:描述主体的长度和内容,或者资源本身。如,可以用实体首部来说明实体主体部分的数据类型。如Content-Type首部告知应用程序,数据是以iso-latin-1

        字符集表示的HTML文档:

        Content-type: text/html; charset=iso-latin-1

    5)扩展首部:规范中没有定义的新首部,非标准的首部,由应用程序开发者创建,但还未添加到已批准的HTTP规范中。

  • 实体的主体部分(entity-body)

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

    实体的主体是HTTP报文的负荷,就是HTTP要传输的内容。

    HTTP报文可以承载很多类型的数字数据,如图片、视频、HTML文档、软件应用程序、信息卡事务、电子邮件等。

posted @ 2018-05-08 21:19  子信风蓝蓝  阅读(1375)  评论(0编辑  收藏  举报