目录
http请求报文主要由请求行、请求头部、空一行、请求正文(请求体)四部分组成。
http响应报文主要由状态行、消息报头、空一行、响应正文四部分组成
一、HTTP协议请求报文
-
http请求报文主要由请求行、请求头部、空一行、请求正文(请求体)四部分组成。
HTTP最常见的请求报文有两种:
- GET 方式的请求报文
- POST 方式的请求报文
说明:
- GET: 获取web服务器数据 (也可以向web服务器提交数据,将要提交的数据附在URL后面)
- POST: 向web服务器提交数据
post与get主要区别:
- 传递的参数不同(get请求参数通过url传递,post请求放在请求体中传递)
- 安全性不同(post请求更安全,资源不会被缓存、保存在服务器日志、以及浏览器浏览记录中,get请求的是静态资源,则会被缓存,如果是数据,则不会缓存))
- 内容限制不同(get请求参数传递长度受限,因为URL长度是受限制的。而post请求参数是在请求体中传递,所以post请求数据长度不受限制)
post与get请求过程:
- post请求的过程:
浏览器请求tcp连接(第一次握手)-》服务器回应进行tcp连接(第二次握手)-》浏览器确认,并发送post请求头(第三次握手)-》服务器返回100 Continue响应-》浏览器发送数据-》服务器返回200 OK响应
- get请求的过程:
浏览器请求tcp连接(第一次握手)-》服务器答应进行tcp连接(第二次握手)-》浏览器确 认,并发送get请求头和数据(第三次握手)-》服务器返回200 OK响应
-
请求方法(Request Method)
请求方法 | 备注 |
---|---|
GET | 请求资源 |
POST | 提交资源 |
HEAD | 获取响应头 |
PUT | 替换资源 |
DELETE | 删除资源 |
OPTIONS | 允许客户端查看服务器性能 |
TRACE | 回显服务器收到的请求,用于测试或诊断 |
-
请求头(Request Header)
请求头 | 描述 |
---|---|
Host | 主机ip地址或者域名 |
User-Agent | 客户端相关信息 |
Accept | 指定客户端接受信息类型,如:image/jpg/text/html |
Accept-Charset | 客户端接受的字符集,如gb2312、iso-8859-1 |
Accept-Encoding | 可接受的内容编码,如:gzip |
Accept-Language | 接受的语言,如:Accept-Language:Zh-cn |
Authorization | 客户端提供给服务器,进行权限认证信息 |
Cookie | 客户端携带的cookie信息 |
Referer | 当前文档的URL,即从哪个链接过来的请求 |
Content-Type | 请求体内容类型 |
Content-Length | 数据长度 |
Cache-Control | 缓存机制 |
Pragma | 防止页面被缓存 |
二、HTTP响应报文
-
http响应报文主要由状态行、消息报头、空一行、响应正文四部分组成
-
状态码(Status Code)
状态码 | 描述 |
---|---|
1XX | 提示信息,请求被成功接收 |
2XX | 成功,请求被成功处理 200 |
3XX | 重定向相关 304 |
4XX | 客户端错误 404 |
5XX | 服务端错误 500 |
-
响应头(Response Header)
响应头 | 描述 |
---|---|
Server | HTTP服务器的软件信息 |
Date | 响应报文的时间 |
Expires | 指定缓存过期时间 |
Set-Cookie | 设置Cookie |
Last-Modified | 资源最后修改时间 |
Content-Type | 响应的类型和字符集 |
Content-Length | 内容长度 |
Connection | 如Keep-Alive,表示保持tcp连接不关闭,不会永久保持连接,服务器可设置 |
Location | 指明重定向的位置,新的URL地址,如304情况 |