HTTP1:报文结构

Author: Xu FC

HTTP 协议


HTTP (Hypertext Transfer Protocol, 超文本传输协议) 是常见的应用层传输协议。该协议有诸多版本,目前应用最广泛的为 HTTP/1.1 版本。

HTTP/1.1 报文结构


HTTP-message   = start-line
                 *( header-field CRLF )
                 CRLF
                 [ message-body ]
  • 行结束符: CRLF
  • HTTP header-field 与 message-body 之间以空行分割。
  • Partial Content 的 body part 之间以空行分割。

HTTP/1.1 请求


HTTP/1.1 请求示例
  • Start-line: 红框部分为请求行,其中包括
    • Request method(红字部分)
    • URL(绿字部分)
    • HTTP 版本(橘字部分)
  • Header-field:绿框部分为请求头部域,其中
    • Header name(棕色部分)
    • Header value(蓝色部分)
    • Header name 与 header value 以冒号(:)分隔
    • 一个 header 多个值,各值之间以逗号(,)分隔
    • Header value 中的 值 与 属性 之间以分号(;)分隔
    • Cookie header 中的各个 cookie 以逗号或分号(,|;)分隔
  • Message-body:黄框部分为请求主体,并不是所有请求都带 message-body, 比如 HEAD 等请求不带 body,POST 等请求带 body。

HTTP/1.1 应答


HTTP/1.1 应答示例
  • Start-line: 红框部分为应答行,其中包括

    • HTTP 版本(橘字部分)
    • 响应状态码(绿字部分): 三位数字
      1xx:收到请求,请继续
      2xx:收到并完成请求
      3xx:重定向
      4xx:客户端错误
      5xx:服务器错误
    • 原因短语(红字部分)
  • Header-field:绿框部分为应答头部域,结构同请求头部域

  • Message-body:黄框部分为请求主体,并不是所有应答都带 message-body, 比如 HEAD 请求的应答不带 body。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://...
    Palomar阅读 1,595评论 0 6
  • http://liuxing.info/2017/06/30/Spring%20AMQP%E4%B8%AD%E6%...
    sherlock_6981阅读 15,979评论 2 11
  • 当 app 和服务器进行通信的时候,大多数情况下,都是采用 HTTP 协议。HTTP 最初是为 web 浏览器而定...
    Flysss1219阅读 1,297评论 0 4
  • 一年一度的520,让我们这些中年人真的无所适从。不知道怎么去面对,或者说该怎么去做。在与同事的交流中,感觉现在的年...
    快乐的晓风哥阅读 192评论 0 1
  • 今天突然想到生命中出现的人。 没有一个是在我的计划中,不知道为什么会出现,也不知道为什么会相遇,甚至于依赖。 我想...
    迷兔小姐阅读 147评论 0 0