报文格式
首先报文的格式如下:
其中空行用于区分报文首部和报文主体内容,是由一个回车符和一个换行符组成。中间使用CR+LF的空行区分(\r\n)
CR代表回车
LF代表换行
无论是请求报文还是响应报文都需要有报文首部,当然报文主体有的请求报文是没有的。
HTTP请求报文主要由请求行、请求头部、请求正文3部分组成。
1,请求行
由3部分组成,分别为:请求方法、URL(见备注1)以及协议版本,之间由空格分隔
请求方法包括GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE以及扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,处于安全性的考虑也是不可用的
协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1
2,请求头部
请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔
常见请求头如下:
请求头部的最后会有一个空行,表示请求头部结束,接下来为请求正文,这一行非常重要,必不可少。是头部和正文的分隔!
3,请求正文
可选部分,比如GET请求就没有请求正文
GET请求示例:
HTTP响应报文格式:
HTTP响应报文主要由状态行、响应头部、响应正文 3部分组成
1,状态行
由3部分组成,分别为:协议版本,状态码,状态码描述,之间由空格分隔(HTTP/1.1 200 OK)
状态代码为3位数字,
200~299的状态码表示成功,
300~399的状态码指资源重定向,
400~499的状态码指客户端请求出错,
500~599的状态码指服务端出错
(HTTP/1.1向协议中引入了信息性状态码,范围为100~199)
这里列举几个常见的:
2,响应头部
响应示例:
与请求头部类似,为响应报文添加了一些附加信息
常见响应头部如下: