浏览器请求响应全过程详解
1、在浏览器中输⼊url,直接输⼊ip或者输⼊域名。
2、如果输⼊的是域名就需要通过DNS解析将域名解析成IP地址,通过IP来确认访问的是哪个服务器。
3、建⽴TCP请求(即三次握⼿)。
4、发送http请求。
5、服务器处理请求,并将结果返回给浏览器。
6、最后断开TCP连接(即四次挥⼿)。
7、浏览器根据返回结果进⾏处理以及页⾯渲染。
----------------------
关于TCP与UDP:
TCP 和 UDP 是传输层的两个协议,前者是基于连接的可靠传输协议,后者是⽆连接的不可靠传输协议,
所以前者更适合于⼀些对数据完整性要求⾼的场合,后者则适合于那种可以允许数据丢失但对传输速率要求特别⾼的场景,例如:语⾳电话,视频等,丢⼀两个包最多卡顿⼀下,⽆伤⼤雅。
新年好儿童歌曲udp⽆连接,但是有回复,如果没有回复,就不能知道丢包,然后进⾏丢包重传了。
-----------------
关于TCP协议的三次握⼿与四次挥⼿:
TCP的标志位:
SYN:⽤于建⽴连接时的同步信号。
二次觉醒任务ACK:⽤于对收到的数据进⾏确认,所确认的数据由确认序列号表⽰。
FIN:表⽰后⾯没有数据需要发送,通常意味着所建⽴的连接需要关闭了。
(都是置1表⽰有效)
三次握⼿:
(A是客户端,B是服务端)
步骤:
1、A机器发出⼀个数据包并将SYN置1,表⽰希望建⽴连接。这个包中的系列号假设是1。
2、B机器收到A机器发过来的数据包后,通过SYN得知这是⼀个建⽴连接的请求,于是发送⼀个响应包并将SYN和ACK标记都置为1。假设这个包中的序列号为y,⽽确认序列号必须是x+1,表⽰收到了A发过来的SYN。在TCP中,SYN被当作数据部分的⼀个字节。
3、A收到B的响应包后需要进⾏确认,确认包中将ACK置1,并将确认序列号置为y+1,表⽰收到了来⾃B的SYN。
为什么是三次握⼿,不是两次?
账号怎么更改防⽌出现请求超时脏连接。
四次挥⼿:
形容雨大的成语TCP是全双⼯通信,双⽅都能作为数据的发送⽅和接收⽅
步骤:
1、A机器想要关闭连接,则待本⽅数据发送完后,传递FIN信号给B机器。设这个包中的序列号是u。
2、B机器应答ACK,告诉A可以断开,但是需要等B机器处理完数据,再主动给A发送FIN信号。B的响应包的序列号是v,确认序列号是
u+1。
3、这时A机器处于半关闭状态,⽆法再发送新的数据。B机器做好连接关闭前的准备⼯作后,发送FIN给A机器,此时B机器也进⼊半关闭状态。
4、A机器发送针对B机器FIN的ACK,连接释放。
单⼯、半双⼯、全双⼯:
1. 单⼯数据传输只⽀持数据在⼀个⽅向上传输;在同⼀时间只有⼀⽅能接受或发送信息,不能实现双向通信,举例:电视,⼴播。
2. 半双⼯数据传输允许数据在两个⽅向上传输,但是,在某⼀时刻,只允许数据在⼀个⽅向上传输,它实际上是⼀种切换⽅向的;在同⼀时间
只可以有⼀⽅接受或发送信息,可以实现双向通信。举例:对讲机。
3.全双⼯数据通信允许数据同时在两个⽅向上传输,因此,全双⼯通信是两个⽅式的结合,它要求发送设备和接收设备都有 独⽴的接收和发送能⼒;在同⼀时间可以同时接受和发送信息,实现双向通信,举例:电话通信。
--------------------
怎样学电脑关于HTTP协议:
青年节放假半天是法定假吗HTTP是什么?
通俗来讲,它就是计算机通过⽹络进⾏通信的规则,是⼀个基于请求与响应,⽆状态的应⽤层协议,常基于TCP/IP协议传输数据。⽬前任何终端之间进⾏任何⼀种通信都必须按照HTTP协议进⾏,否则⽆法连接。
http协议是应⽤层的协议。基于TCP的可靠性连接。通俗点说,就是在请求之后,服务器端⽴即关闭连接、释放资源。这样既保证了资源可⽤,也吸取了TCP的可靠性的优点。
正因为这点,所以⼤家通常说http协议是“⽆状态”的,也就是“服务器不知道你客户端⼲了啥”,其实很⼤程度上是基于性能考虑的。以⾄于后来有了session之类的玩意。
四个基于:
1、请求与响应:客户端发送请求,服务器端响应数据
2、⽆状态的:协议对于事务处理没有记忆能⼒,客户端第⼀次与服务器建⽴连接发送请求时需要进⾏⼀系列的安全认证匹配等,因此增加页⾯等待时间,当客户端向服务器端发送请求,服务器端响应完毕后,两者断开连接,也不保存连接状态,下⼀次客户端向同样的服务器发送请求时,由于他们之前已经遗忘了彼此,所以需要重新建⽴连接。
3、应⽤层:Http是属于应⽤层的协议,配合TCP/IP使⽤。
4、TCP/IP:Http使⽤TCP作为它的⽀撑运输协议。HTTP客户机发起⼀个与服务器的TCP连接,⼀旦连接建⽴,浏览器(客户机)和服务器进程就可以通过套接字接⼝访问TCP。
针对⽆状态的⼀些解决策略:
有时需要对⽤户之前的HTTP通信状态进⾏保存,⽐如执⾏⼀次登陆操作,在30分钟内所有的请求都不需要再次登陆。于是引⼊了Cookie 技术。
HTTP/1.1想出了持久连接(HTTP keep-alive)⽅法。其特点是,只要任意⼀端没有明确提出断开连接,则保持TCP连接状态,在请求⾸部字段中的Connection: keep-alive即为表明使⽤了持久连接。
等等还有很多。。。。。。
-----------------------
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论