目的
了解http协议
简介
http协议规定了浏览器和服务器在进行传输数据的时候的数据的格式。
对比tcp
http基于tcp tcp:传输层,可靠传输,二进制位 http:应用层,信息使用,文本格式
Web调试工具fillder
类似wareshark(主要tcp,udp) 记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展
格式
请求格式
1、请求行;2、请求报头;3、空行;4、请求正文
请求行
HTTP方法:如get意思就是想从服务器获取到什么
URL:描述了要访问的网络上的资源具体是在哪
版本号:表示当前使用的HTTP的版本是什么,目前常用的版本是1.1
请求报头
一般有很多行,每一行都是一个键值对
空行
请求头的结束标志
请求正文
可有可无
响应格式
首行
版本号:代表当前HTTP协议的版本
状态码:描述了响应是成功还是失败,不同的状态码也描述了失败的原因,如404
状态码的描述:通过一个或是一组简短的单词描述了当前状态码的含义
响应头
键值对结构,每个键值对占一行
空行
响应头的结束标志
响应正文
是服务器返回客户端的具体数据,可能会有各种不同的格式,最常见的格式就是HTNL。
url
网络上唯一资源的地址符 主机 资源
协议方案名:描述这个URL是给哪个协议用的,http,https
认证信息:体现用户名密码,但现在几乎已经不使用了
服务器地址:一个域名或是一个IP地址
端口号:描述了我们要访问服务器上的哪个应用程序,大部分情况下是被省略的,对于HTTP开头的URL,会默认使用80作为端口号
带层次文件路径:描述了要访问的资源是什么
查询字符串:本质上是浏览器/客户端给服务器传递的自定义信息,相当于对获取到的资源提出了进一步的要求
片段标识符:描述了要访问的当前HTML中具体的哪个子部分
HTTP方法
# 对比HTTPS 几乎没区别,唯一的区别就是HTTPS在HTTP的基础之上引入了一个加密层。
SSL/TLS
HTTPS中引用的加密层,称为SSL/TLS,这之中涉及到的加密操作主要有两种方式:
1、对称加密:使用同一个密钥可以进行加密也可以进行解密。
2、非对称加密:有两个密钥,分别是公钥和私钥,其中一个用来加密,另一个用来解密。
参考
- 详解 —— HTTP协议
https://blog.csdn.net/lingxu6/article/details/124738027 - Fiddler 教程
https://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html - HTTP协议格式详解(总结)
https://blog.csdn.net/qq_40933663/article/details/90045869?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-90045869-blog-124738027.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-90045869-blog-124738027.pc_relevant_default&utm_relevant_index=6
|