☛协议:是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。
☛HTTP(hypertext transport protocol)协议也叫超文本传输协议,是一种基于TCP/IP的应用层通信协议,这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。
客户端与服务端通信时传输的内容我们称之为报文。
☛HTTP就是一个通信规则,这个规则规定了客户端发送给服务器的报文格式,也规定了服务器发送给客户端的报文格式。实际我们要学习的就是这两种报文。客户端发送给服务器的称为“请求报文”,服务器发送给客户端的称为“响应报文”。
Fiddler是一个http协议调试代理工具,使用它我们可以抓取网页的所有请求与响应,也就是咱们俗称的抓包。
当你打开fiddler工具时,它就会自动抓取浏览器的数据包。
如何查看报文呢?
如何停止自动抓包呢?
点击左下角的capturing,当它消失时会停止抓包。再次点击时它会出现,开始自动抓包。
- 报文格式
请求首行;
请求头信息;
空行;
请求体;
GET http://localhost:3000/index.html?username=sunwukong&password=123123 HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
下面分析一下:报文中常见的:
POST请求要求将form标签的method的属性设置为post
POST请求是可以有请求体的,而GET请求没有请求体
POST http://localhost:3000/index.html HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Content-Length: 34
Pragma: no-cache
Cache-Control: no-cache
Origin: http://localhost:3000
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://localhost:3000/form.html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: Webstorm-129da853=8726c2d8-3b88-48b8-8db0-dd82e62fb79a
username=sunwukong&password=123123
- 报文格式
响应首行;
响应头信息;
空行;
响应体;
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Wed, 21 Mar 2018 13:13:13 GMT
ETag: W/"a9-16248b12b64"
Content-Type: text/html; charset=UTF-8
Content-Length: 169
Date: Thu, 22 Mar 2018 12:58:41 GMT
Connection: keep-alive
Title
这是我的第一个服务器
响应码对浏览器来说很重要,它告诉浏览器响应的结果。