浏览器与服务器通信的过程

首先需要知道:

用户在浏览器中输入网址时候,浏览器会通过访问的域名来定位得到IP(DNS)

会依此从浏览器缓存、系统缓存、路由器缓存、ISP DNS缓存中查找

 

HTTP协议:超文本传输协议,目的是为了提供一种发布和接受HTML页面的方法,浏览器和服务器都遵循的一种语法规范,所有的信息通过这种语法规范传输,使得浏览器和服务器都可以正确理解。

 

但浏览器和服务器不是直接连接上的,需要中间的网络设备(网线),而网络设备s行传输数据还需要一种通用的语法规范(协议),这种协议一般是TCP协议和UDP协议


通信过程:

  1. 输入网址后,请求由浏览器以一种满足http协议的请求报文的形式发往服务器。请求报文中包含了要请求的页面地址,请求的文件类型等一系列信息
  2. 传递的时候,网络设备把请求报文包装在一个满足TCP协议的数据中,通过网线传送给服务器
  3. 服务器接受数据后,将数据解译,重新恢复成浏览器满足http协议的请求报文的形式,然后传向服务器软件
  4. 服务软件得到请求报文后,根据请求报文的页面地址在服务器数据库中找到相应的页面,生成满足http协议的响应报文发向浏览器。响应报文包括响应报文头和请求页面的代码
  5. 响应报文通过服务器的网络设备,包装在满足TCP协议的数据,通过网线传给客户端
  6. 客户端网络设备将响应报文解析,传给浏览器软件,浏览器将报文解析,得到网页

 

一个网页往往包含HTML,JS代码和CSS样式表,图片等多种数据,这些数据是按一定顺序由浏览器请求,服务器传输的。通过不断地请求,得到最后完整的网页


但在数据传输前,需要先建立连接,也就是TCP/IP协议的三次握手和四次挥手

三次握手步骤:

  1. 第一次握手:客户端向服务器端发送连接请求报文段,客户端进入等待状态,等待服务器确认
  2. 第二次握手:服务器收到客户端的报文段,对报文段确认后,服务器端将服务器端连接配置信息放到报文段中,发送给客户端,服务器进入等待状态
  3. 第三次握手:客户端收到服务器返回的报文段,根据配置信息发送连接报文段,建立连接状态

数据传输完毕后,通过四次挥手断开连接

  1. 第一次挥手:客户端向服务器端发送请求关闭连接报文段,表示客户端没有数据要发送给服务器了,客户端进入终止等待1状态
  2. 第二次挥手:服务器端收到客户端发送的报文段,再发送一个确认关闭报文段,表示同意关闭请求,服务器进入关闭等待状态
  3. 第三次挥手:客户端收到请求后,进入终止等待2状态,等待服务器发送连接释放报文。服务器最后的数据发送完毕后,向客户端发送连接释放报文,服务器进入最后确认状态
  4. 第四次握手:客户端收到报文,发送确认报文,进入时间等待状态(注意此时TCP连接还没有释放,必须经过2∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。),而服务器端收到确认报文后马上关闭

原文:http://blog.chinaunix.net/uid-26602509-id-3273127.html

          https://blog.csdn.net/weixin_41144066/article/details/79021899?utm_source=blogxgwz8

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值