【无标题】浏览器是如何访问的? 超详细解析过程

  1. 浏览器分析链接指向网页的URL。
  2. 浏览器向DNS请求解析 URL 的 IP 地址。
  3. 域名系统DNS 解析出 URL 的 IP 地址。
  4. 浏览器与服务器建立 TCP 连接。
  5. 浏览器发出取文件命令:GET/chn/yxsz/index.htm。
  6. 服务器(URL所在)给出响应,把文件 index.htm 发给浏览器。
  7. 释放TCP 连接。
  8. 浏览器 显示 该URL下文件 index.htm 的所有文本。

HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输。但是HTTP协议本身是无连接的。这就是说,虽然HTTP 使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先建立HTTP连接。

HTTP协议是无状态的,也就是说,同一个客户第二次访问同一个服务器上面的页面时,服务器的响应与第一次被访问时的相同(假设服务器没有将该页面更新)。HTTP的无状态特性简化了服务器的设计,使服务器更容器支持大量并发的 HTTP 请求。

 从图中可以看出,请求一个一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT(一个RTT用于连接TCP连接,另一个RTT用于请求和接收万维网文档。这里TCP建立连接的三次握手的第三个报文段中捎带了客户对万维网文档的请求)。

特别是万维网服务器往往要同时服务于大量客户的请求,所以这种非持续连接会使万维网服务器的负担很重。好在浏览器都提供了能够打开5~10个并行的TCP连接,而每一个TCP连接处理客户的一个请求。因此,使用并行TCP连接可以缩短响应时间。

        因此为了解决该问题,使用持续连接。所谓持续连接就是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。

持续连接有两种工作方式:即非流水线方式流水式方式

非流水线方式的特点,是客户在收到前一个响应后才能发出下一个请求。因此,在TCP连接已建立后,客户每访问一次对象都要用去一个往返时间RTT。这比非持续连接要用去两倍RTT的开销,节省了建立TCP连接所需的一个RTT时间。但非流水线方式还是有缺点的,因为服务器在发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源。

流水线方式的特点,是客户在收到HTTP的响应报文之前就能够接着发送新的请求报文。于是一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。因此,使用流水线方式时,客户访问所有的对象只需花费一个RTT时间。流水线工作方式使TCP连接中的空闲时间减少,提高了下载文档效率。

代理服务器

        代理服务器(proxy server)是一种网络实体,它又称为万维网高速缓存(Webcache)。代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。代理服务器可在客户端或服务器端工作,也可在中间系统上工作。下面我们用例子说明它的作用。

 HTTP报文结构

HTTP有两类报文:

        (1)请求报文:从客户向服务器发送请求报文

        (2)响应报文:从服务器到客户的回答

由于HTTP 是面向文本的,因此在报文中每一个字段都是一些ASCII码,因而每个字段的长度都是不确定的。

 HTTP存放用户信息

        HTTP中使用Cookie。在RFC 2109中对Cookie进行了定义,规定万维网站点可以使用Cookie来跟踪用户。

        Cookie是这样工作的。当用户张三浏览某个使用Cookie的网站时,该网站的服务器就为张三产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目。接着在给张三的HTTP响应报文中添加一个叫做Set-cookie的首部行。这里的“首部字段名”就是“Set-cookie”,而后面的“值”就是赋予该用户的“识别码”。例如这个首部行是这样的:

        Set-cookie: 12345678

        当张三收到这个响应时,其浏览器就在它管理的特定Cookie文件中添加一行,其中包括这个服务器的主机名和Set-cookie后面给出的识别码。当张三继续浏览这个网站时,每发送一个HTTP请求报文,其浏览器就会从其Cookie文件中取出这个网站的识别码,并放到HTTP请求报文的Cookie首部行中:

        Cookie: 12345678

        于是,这个网站就能够跟踪用户12345678(张三)在该网站的活动。需要注意的是,服务器并不需要知道这个用户的姓名张三和其他的信息。但服务器能够知道用户12345678在什么时间访问了哪些页面,以及访问这些页面的顺序。如果张三是在网上购物,那么这个服务器可以为张三维护一个所购物品的列表,使张三在结束这次购物时可以一起付费。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值