目录
HTTP协议又叫做超文本传输协议,它不仅可以传输文本,还可以传输js、css、html等格式的文件,是作为应用层使用最广的一种协议。
当我们在浏览器中输入一个网址时,浏览器会给服务器发送一个HTTP请求,服务器接收到请求以后,经过计算返回一个HTTP响应。

我们可以通过抓包工具 Fiddler 4来抓一下包,我们在抓取数据前先将Fiddler 4中的数据清空
,然后在浏览器中输入www.sogou.com,看一下抓包的结果。


然后找到对应的数据包,选择蓝色的数据包,然后根据提示点击响应的按钮
打开以后观察右侧的数据,上方表示HTTP请求中的数据,下方表示HTTP响应中的数据,为了观察可以用记事本打开。
HTTP中协议的格式要分为请求格式和响应格式
1.首行(里面包括方法 URL Http/版本号)
2.请求头(里面每一行是一个键值对,键和值之间使用冒号加空格来分隔,不同的键值表示不同的含义)
3.空行
4.请求正文(body)
1.首行(Http/版本号 状态码 状态码的描述)
2.请求头(里面每一行是一个键值对,键和值之间使用冒号加空格来分隔,不同的键值表示不同的含义)
3.空行
4.响应正文(body)
HTTP协议里面的方法主要有以下几个:
GET、POST、PUT、DELETE等
GET表示获取网上的资源;
POST表示给服务器发送一个资源;
PUT表示传输文件;
DELETE表示删除文件;
上面的这些方法本质上没有区别,理论上可以相互替换 ,在HTTP请求中既可以用GET又可以用POST
URL:统一资源定位符,俗称网址,每一个互联网上的文件都有唯一的一个URL。
根据一个具体的URL来说明URL的格式:
上面各个部分在URL中也是可以省略的,下面主要介绍重要的结构:
这里将请求和响应的header一起讲:
1.Host:表示服务器主机的地址和端口号
2.Content-Length:表示body中的数据长度
3.Content-Type:请求的body中的数据格式,主要有以下几种——
x-www-form-urlencode(表单提交的数据格式) 、multipart/form-data(form表单提交的数据格式,通常提交图片/文件就会遇到这种格式)、application/json(数据为json的数据格式)、text/html(数据为html个格式)
4.Cookie:Cookie是浏览器提供的一种机制,是为了帮助浏览器能够让网页进行持久化保存数据的一种办法。
我们在登录网站的时候,第一次登录时所花的时间比后面几次登录的时间长,出现这样的原因就是应为浏览器他将我们的登陆信息保存在了Cookie中,下回登陆的时候很快就能登入。
我们可以打开浏览器,输入一个具有登陆功能的网址,点击输入框左侧的锁,点击Cookie。可以看到,里面包含了很多Cookie信息。 我们登陆进去,然后用抓包工具抓login包:

下面是清除Cookie之后的情况:
如果再次登陆的话请求header中又会存在gitee-session-n=.......这样的字符串,因为一旦登陆,浏览器就会自动添加Cookie。
当上传图片时正文会出现该类型的数据格式;

上传文件时正文会出现该类型的数据格式;
在登陆某些页面时,正文中会出现该类型的数据,向下面这样


状态码表示访问一个页面的结果,常见的状态码如下:
表示访问成功
表示访问的URL不存在
表示禁止访问
表示服务器不支持请求中的方法
表示服务器崩溃
请求超时
临时重定向
永久重定向
总结:
1XX Informational(信息状态码)
2XX Success(成功状态码)
3XX Redirection(重定向状态码)
4XX Client Error(客户端错误状态码)
5XX Server Error(服务器错误状态码)