使用前需要了解
b/s架构 编写程序部署到web服务器;web服务器运行在服务器上,绑定ip地址并监听某端口,接收和处理http请求;客户端通过http协议获取服务器上的网页、文档等资源
HTTP:超文本传输协议,通过浏览器和服务器进行数据交互,进行超文本(文本、图片、视频等)传输的规定。也就是说,http协议规定了超文本传输所要遵守的规则。 HTTP协议目的是规定客户端和服务端数据传输的格式和数据交互行为,并不负责数据传输的细节。底层是基于TCP实现的。现在使用的版本当中是默认持久连接的,也就是多次HTTP请求使用一个TCP连接。
TCP共有6个标志位,分别是:SYN(synchronous),建立联机。ACK(acknowledgement),确认。PSH(push),传输。FIN(finish),结束。RST(reset),重置。URG(urgent),紧急。
三次握手(Three-way Handshake),是指建立一个 TCP 连接时,需要客户端和服务器总共发送3个包。
-
假设客户端是A,服务端是B。
三次握手建立连接的过程为:
A向B发起建立连接的请求,向B发送一个syn包,此为一次握手;
B收到syn包之后会回复一个syn+ack包,表示自己同意建立连接,此为二次握手;
A收到之后会再回复一个ack包,连接成功建立,此为三次握手。
-
假如是两次握手,会发生什么情况呢? 服务端在发出应答消息后,它根本就不能确认客户端是否接受到消息了,那么这样意味着只有客户端可以向服务端发送数据。
-
假如是四次握手呢?明明已经保证了一个稳定的传输流了,为什么还要浪费性能再去发一次消息,浪费了性能。
四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发。
由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。
(1) TCP客户端发送一个FIN报文,用来关闭客户到服务器的数据传送
(2) 服务器收到这个FIN报文,它发回一个ACK报文,确认序号为收到的序号加1。和SYN一样,一个FIN报文将占用一个序号。
(3) 服务器关闭客户端的连接,发送一个FIN给客户端。
(4) 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。
抓包(packet capture)就是将 网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全 。、
抓包工具Fiddler是位于客户端和服务器端的HTTP代理;功能强大,是Web调试的利器。
- 监控浏览器所有的HTTP/HTTPS流量
- 查看、分析请求内容细节
- 伪造客户端请求和服务器响应
- 测试网站的性能
- 解密HTTPS的web会话
- 全局局部断点功能
- 第三方插件
- 可以进行接口调试,接口测试,线上环境调试,web性能分析
- 判断前后端bug,开发环境hosts配置,mock,弱网断网测试