HTTP协议数据包格式(报文段)

先看一张简图,如下
HTTP协议数据包格式(报文段)

①HTTP请求格式

  • 请求行:包括 方法+URL+版本
  • Header:包括请求的属性,是由冒号分割的键值对,每组属性用\n分割,遇到 空行 说明Header结束
  • Body:空行之后都是Body的内容,Body允许是空字符串,如果不为空,那么在Header中会有一个Content Length属性说明Body的长度
    HTTP协议数据包格式(报文段)
    1、请求方法

GET:请求获取Request——URL所标识的资源

POST:在Request——URL所标识的资源后附加资源

HEAD:请求获取由Request——URL所标识的资源的响应消息报头

PUT:请求服务器存储一个资源,由Request——URL作为其标识

DELETE:请求服务器删除由Request——URL所标识的资源

TRACE:请求服务器回送收到的请求信息(用于测试和诊断)

CONNECT:保留

OPTIONS:请求查询服务器性能

2、URL

URI全名为Uniform Resource Indentifier(统一资源标识),用来唯一的标识一个资源,是一个通用的概念,URI由两个主要的子集URL和URN组成。URL全名为Uniform Resource Locator(统一资源定位),通过描述资源的位置来标识资源。URN全名为Uniform Resource Name(统一资源命名),通过资源的名字来标识资源,与其所处的位置无关,这样即使资源的位置发生变动,其URN也不会变化。

3、协议版本

格式为HTTP/主版本号.次版本号,常用为:HTTP/1.1 HTTP/1.0

4、请求头部

Host:接受请求的服务器地址,可以是IP或者是域名

User-Agent:发送请求的应用名称

Connection:指定与连接相关的属性,例如(Keep_Alive,长连接)

Accept-Charset:通知服务器端可以发送的编码格式

Accept-Encoding:通知服务器端可以发送的数据压缩格式

Accept-Language:通知服务器端可以发送的语言

②HTTP响应格式

  • 响应状态行:包括 版本号+状态码+状态码解释、
  • Header:包括请求的属性,是由冒号分割的键值对,每组属性用\n分割,遇到 空行 说明Header结束
  • Body:空行之后都是Body的内容,Body允许是空字符串,如果不为空,那么在Header中会有一个Content Length属性说明Body的长度,如果服务器返回了一个HTML页面,那么HTML页面内容就在Body中
    HTTP协议数据包格式(报文段)
    1、状态码,100-199表示请求已收到继续处理,200-299表示成功,300-399表示资源重定向,400-499表示客户端请求出错,500-599表示服务器端出错
    常见的状态码有:
    200:响应成功
    302:跳转,重定向
    400:客户端有语法错误
    403:服务器拒绝提供服务
    404:请求资源不存在
    500:服务器内部错误

2、响应头部

Server:服务器应用软件的名称和版本

Content-Type:响应正文的类型

Content-Length:响应正文的长度

Content-Charset:响应正文所使用的编码

Content-Encoding:响应正文使用的数据压缩格式

Content-Language:响应正文使用的语言