客户端请求消息
主要由三部分组成,请求行,请求头,请求体。其中请求头和请求体中间有一个空行隔开。
- 请求行一般描述"请求方法"、"url"和"协议版本",用空格隔开。
- 请求头一般描述客户端信息和一些和服务器端交互的定义,例如浏览器版本、消息内容格式和cookie等信息,他以key:value结构定义
- 请求体一般为服务器发送的数据,例如提交的表单信息和上传文件信息
大致为这样:
请求行:[请求方法] [URL] [协议版本]\r\n
请求头:[key]:[value]\r\n
请求头:[key]:[value]\r\n
\r\n
请求体:[内容]
对应:
POST /login HTTP/1.1
Host: www.jd.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
Cookie: rememberMe=true;
username=xxx&password=xxx
服务器端响应消息
主要由三部分组成,状态行,消息报头,响应正文。其中消息报头和响应正文中间有一个空行隔开。
- 状态行一般描述"协议版本"和"响应状态",用空格隔开。
- 消息报头一般描述服务器信息、消息体格式和向客户端发送的一些指令,例如服务器类型、跳转压缩命令和cookie信息,他们同样以key:value结构定义
- 响应正文一般为服务器向客户返回的数据,例如html消息,或者json数据
大致为这样:
状态行:[协议版本] [响应状态] [状态描述] \r\n
消息报头:[key]:[value]\r\n
消息报头:[key]:[value]\r\n
\r\n
响应正文:[内容]
对应:
HTTP/1.1 200 OK
Connection:keep-alive
Content-Type:text/html; charset=utf-8
Date:Sat, 04 Aug 2018 16:16:38 GMT
ETag:"5b65cd80-163e4"
Last-Modified:Sat, 04 Aug 2018 16:00:00 GMT
Server:nginx/1.4.7
<html>
<head>
<meta ...>...</meta>
</head>
<body>
<div>...</div>
</body>
</html>
网友评论