HTTP 消息结构
HTTP 是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。一旦建立连接后,数据消息就通过类似 internet 邮件所使用的格式 RFC5322 和多用途 internet 邮件扩展(MIME)RFC2045 来传送。
客户端请求消息(注释使用“//”符号作为解释说明不作为实际内容占有行,“()”里的标注为实际内容占据一个位置,回车符号为“\r”用于将鼠标移动到行首,并不前进至下一行,换行符为“\n”)
// 请求行 request line
请求方法(空格)URL(空格)协议版本(回车符)(换行符)
// 请求头部 header
头部字段名1:值(回车符)(换行符)
···
头部字段名n:值(回车符)(换行符)
(回车符)(换行符)
// 请求数据
具体的请求数据
// 例子
POST /hello.html HTTP/1.1
User-Agent:Mozilla/4.0
Host:www.example.com
Accept-Language:zh-CN
Content-Type:application/x-www-form-urlencoded
name=tom&password=123
服务器响应消息
// 状态行
版本(空格)状态码(空格)原因短语(回车符)(换行符)
// 消息报头
头部字段名1:值(回车符)(换行符)
···
头部字段名n:值(回车符)(换行符)
(回车符)(换行符)
// 响应正文
具体响应正文
// 例子
HTTP/1.1 200 OK
Date:Mon, 27 Jul 2009 12:28:53 GMT
Server:Apache
Content-Type:application/json
{"username": "tom","password":"123"}