HTTP协议
网络协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。
HTTP协议(超文本传输协议)是一种网络通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。默认端口:80
HTTPS协议是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。默认端口:443
HTTP协议特点
- 支持客户/服务器模式
- 简单快速
- 灵活
- 无连接
- 无状态
概念:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
- 协议组成
HTTPS协议特点
1.内容加密:采用混合加密技术,中间者无法直接查看明文内容
2.验证身份:通过证书认证客户端访问的是自己的服务器
3.保护数据完整性:防止传输的内容被中间人冒充或者篡改
4.SSL证书需要购买申请,功能越强大的证书费用越高
5.SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗
6.HTTPS连接缓存不如HTTP高效,流量成本高
7.HTTPS协议握手阶段比较费时,对网站的响应速度有影响,影响用户体验
请求特征
请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成。
HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
最常用的方法有: GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源。 POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。 URL字段:也称为请求地址 HTTP协议版本:目前常用的是HTTP1.1、HTTP2.0
GET和POST区别
从参数的传递方面来看,GET请求的参数是直接拼接在地址栏URL的后面,而POST请求的参数是放到请求体里面的
从长度限制方面来看,GET请求有具体的长度限制,一般不超过1024KB,而POST理论上没有,但是浏览器一般都有一个界限
从安全方面来看,GET请求相较于POST,因为数据都是明文显示在URL上面的,所以安全和私密性不如POST
从本质上来说,GET和POST都是TCP连接,并无实质的区别.但是由于HTTP/浏览器的限定,导致它们在应用过程中体现出了一些不同. GET产生一个数据包,POST产生两个数据包.对于GET请求,浏览器会把http header和data一并发出去,服务器响应200(返回数据).
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok
请求头
请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息。
User-Agent:产生请求的浏览器类型。 Accept:客户端可识别的内容类型列表。 Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。 Content-Type:请求体的MIME类型 MIME类型:描述消息内容类型的因特网标准,常见的有application/json、image/jpeg、application/octet-stream等 请求正文:向服务器提交的请求数据,GET请求的参数一般是放在请求行后的键值对,post请求的参数类型多样(表单、json、xml、图片等)
响应行
响应行由响应状态码、响应信息和HTTP协议版本字段3个字段组成
响应状态码
由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息–表示请求已接收,继续处理 2xx:成功–表示请求已被成功接收、理解、接受 3xx:重定向–要完成请求必须进行更进一步的操作 4xx:客户端错误–请求有语法错误或请求无法实现 5xx:服务器端错误–服务器未能实现合法的请求
响应头
响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。 常见的响应头有: Content-Length:表示内容长度 Content-Type:表示后面的文档属于什么MIME类型 Server:服务器通过这个头告诉浏览器服务器的类型
响应正文
响应正文就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是图片就是图片等
Fiddler是什么
来源:百度百科
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。
Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。
安装Fiddler
下载地址
https://www.telerik.com/fiddler
使用Fiddler
下载之后安装并打开
这个时候我们看到的界面是fiddler的原始界面,首先我们配置如何抓取电脑端的请求信息
安装证书
Fiddler默认只能代理HTTP请求,如果要代理HTTPS请求,需要安装证书和设置浏览器代理。Fiddler提供了安装证书的功能,安装完成后,证书是安装在系统下。由于IE和Chrome读取的是系统的证书,因此Fiddler证书安装完成后IE和Chrome可以直接使用。这里先介绍下IE和Chrome证书配置方法。
选择【Tools】=》【Options】=》【HTTPS】=》【from all processes】
点击安装证书,确定 备注:如果之前已经安装过证书,重新安装前需要重置证书,通过点击【Actions】-【Reset all Certificates】进行重置。
- 安装证书到本地
- 验证证书安装成功,点击【Actions】-【Open Windows Certificate Manager】,如图:
查看证书
勾选选项
点击ok,重启Fiddler
打开百度查看信息
Fiddler工具栏介绍
添加接口备注信息
当有多个请求时,不好区分,所以将他命名,方便我们查看
重新请求接口
表示回放会话,想要重新请求会话,可以使用此功能(快捷键 R) 比如当前只有一个会话
点击之后生成一个新会话
清空列表数据
表示清空会话列表,也可以进行过滤列表
继续执行(类似Debug)
表示可以使用请求往下走,这个可以和Fiddler断点进行使用
切换模式
表示用来模式切换,在流模型和缓存模式下进行切换
流模式:理解成为一种实时通信的模式,有请求就有返回,也就是实时返回
缓存模式:等待所有的请求都到一起在返回,也就是等所有的数据都准备好了以后才返回给客户端
解压请求返回数据
表示把http协议的响应解压出来
请求缓存
保持会话,实际上保存的会话数量越多,fiddler占用的内存越大,根据电脑性能选择保持多少会话,尽量不要all sessions
过滤请求
拖动图标到浏览器,代表只监听该浏览器的所有请求,其他请求都不会被监听
查找请求信息
保存信息到本地
截图
将截图用文件的形式保存
快速启动浏览器
点击之后就会新开一个浏览器页面 可以配合接口使用,查看天气接口 打开浏览器之后,自动请求接口并返回信息
清除缓存
表示快速清除缓存
解码与编码
窗口分离
本文主要讲解了fiddler的环境搭建以及如何抓取https的包
|