浏览器和服务器之间的通线

导读:本篇文章讲解 浏览器和服务器之间的通线,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

浏览器的两个概念:
进程:是程序在执行过程中分配和管理资源的基本单位。就是一个程序从开始执行到执行结束的一个过程。通俗说:进程就是正在执行的应用程序。
线程:是cpu调度和分派的基本单位,它可与同属一个进程的其他线程共享进程所拥有的全部资源,简而言之,可以理解为进程的代码执行器。
总之,线程是跑在进程之中的,一个进程里面可以存在多个线程,但是一个线程只能隶属于一个进程

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

浏览器的实现原理:
用户在浏览器中输入网址时候,浏览器会通过访问的域名来定位得到IP(DNS解析)会依此从浏览器缓存、系统缓存、路由器缓存、ISP DNS缓存中查找

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

通信过程:

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

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

重点:

但在数据传输前,需要先建立连接,也就是TCP/IP协议的三次握手和四次挥手
三次握手步骤:
第一次握手:客户端向服务器端发送连接请求报文段,客户端进入等待状态,等待服务器确认
第二次握手:服务器收到客户端的报文段,对报文段确认后,服务器端将服务器端连接配置信息放到报文段中,发送给客户端,服务器进入等待状态
第三次握手:客户端收到服务器返回的报文段,根据配置信息发送连接报文段,建立连接状态

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/61408.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!