1 简介
- HTTP协议基于TCP/IP通信协议来传递数据,用于客户端-服务端架构上。
- 浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求(Request)。
- 服务端根据接收到的请求,向客户端发送响应信息(Response)。
2 http消息抓取
Linux上可以通过tcpdump
工具抓包查看http消息:
$ sudo tcpdump port 8080 -i lo -vnn
tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
3 协议格式
3.1 请求消息格式
主要由:请求行(request line
)、请求头部(header
)、空行、请求体(body
)组成。
如简单的GET
请求消息:
简单的POST
请求消息:
GET
请求通常有:
form
标签 method=geta
标签link
标签引入cssscript
标签引入js文件img
标签引入图片iframe
标签引入html页面- 浏览器地址栏直接url访问
POST
请求通常有:
form
标签 method=post
3.2 响应消息格式
HTTP响应也由4个部分组成:响应行(Response line
)、响应头(header
)、空行、响应体(body
)。
-
常见响应状态码:
- 200 表示请求成功
- 302 表示请求重定向
- 404 表示请求服务器已收到,但请求的数据不存在(请求地址错误)
- 500 表示请求服务器已收到,但服务器内部错误(代码错误)