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

article/2025/11/4 8:36:28

  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在什么时间访问了哪些页面,以及访问这些页面的顺序。如果张三是在网上购物,那么这个服务器可以为张三维护一个所购物品的列表,使张三在结束这次购物时可以一起付费。


http://chatgpt.dhexx.cn/article/XSb0eZ17.shtml

相关文章

Linux命令学习---查看linux服务器,开机启动的服务,正在运行的服务,监听检查,防火墙检查,SSH检查

1)查看linux服务器,开机启动的服务,输入以下命令 systemctl list-unit-files --stateenabled2)查看linux服务器,正在运行的服务: systemctl --typeservice --staterunning --all3)监听检查 ss…

c#如何在linux上运行程序,在Linux上运行C#的方法是什么

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。有时我们需要在Linux上编写程序,那么c#在Linux中想要运行需要什么呢?这篇文章主要介绍了在Linux上运行C#的方法, 下面就来看看如何在Linux上运行Mono。 命令行应用 先从Mono主页(http://www.go-…

Linux系统查看磁盘可用空间的5个命令

大家好,我是良许。 工作中,经常会遇到磁盘爆满的情况,尤其是一台服务器运行了 N 年之后,里面会充满各种各样垃圾文件,比如:编译产生的中间文件、打包的镜像文件、日志文件,等等。 别问我怎么知…

Linux如何运行exe驱动,在Linux下可用Wine安装和运行360驱动大师、CCleaner

在Linux操作系统下可用Wine安装和运行360驱动大师、CCleaner.exe文件,它们是Windows下的软件,在Linux中借助Wine就可以使用360驱动大师和CCleaner了,已亲测有效。 说明 1、如果有原生的Linux软件,请不要用Wine来运行,因…

服务器被攻击 显示503,在Linux服务器下出现503服务不可用错误的原因和排除方法...

本文介绍在Linux服务器下出现503服务不可用错误(503 Service Unavailable Error)的原因和排除方法。内容有:什么是HTTP 503错误、对500错误进行故障排除。 前言 浏览网页时最常见的错误之一是“503服务不可用错误(503 Service Unavailable Error)”,此消息表明网络服务器遇到…

在线运行 Linux,真滴牛逼。

作者:JackTian 来源:公众号「杰哥的IT之旅」 ID:Jake_Internet 转载请联系授权(微信ID:Hc220088) 原文地址:在线运行 Linux,强的离谱! 大家好,我是杰哥。 对…

什么是 503 服务不可用错误?

浏览网页时最常见的错误之一是“503 服务不可用错误”,此消息表明 Web 服务器遇到技术问题并且无法处理请求。 本文将介绍 503 错误的含义、收到 HTTP 503 代码的原因以及如何解决这些错误。 什么是 HTTP 503 错误 当您打开网页时,您的浏览器会向托管…

在linux下安装配置ssh服务

一、 实验题目: linux环境下的部分配置 二、 理论分析 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会…

Linux的dhcp服务器

准备工作 1.CentOS 7作为服务器 CentOS 7作为客户机 2.先将虚拟机上的DHCP服务器和客户机的网络连接设置为仅主机模式(为了更好的模拟生产服务器) 2.打开虚拟网络编辑器,将仅主机模式下的"使用本地DHCP服务器IP地址分配给虚拟机"…

mac上实时运行linux系统,在Linux操作系统上可用Darling来运行macOS软件

本文介绍一款适用于Linux的macOS转换层工具Darling,用它可让您在Linux操作系统上运行macOS软件。 介绍 1、快速 Darling无需使用硬件仿真器即可直接运行macOS软件。 2、自由 与Linux一样,Darling是免费的开源软件,它在GitHub上公开开发&#…

网络诊断显示“DNS服务器可能不可用”

首先提供我的解决方法: 1、遇到这种情况,先重启电脑试一试,或者把ADSL猫和路由器都重启一下。如果还不行,进入网络共享中心的网络连接窗口,选择本地连接,右键,选择【属性】,如果用的…

linux运行直播软件,在Linux下可用Wine安装和运行虎牙直播、斗鱼直播

在Linux操作系统下可用Wine安装和运行虎牙直播、斗鱼直播.exe文件,它们是Windows下的软件,在Linux中借助Wine就可以使用虎牙直播和斗鱼直播了,已亲测有效。 说明 1、如果有原生的Linux软件,请不要用Wine来运行,因为在这…

linux查服务器总内存大小,怎么查看linux中的可用内存大小

怎么查看linux中的可用内存大小 发布时间:2020-06-16 13:28:33 来源:亿速云 阅读:620 作者:鸽子 作为Linux用户,特别是管理员,我们需要检查系统使用多少内存资源以及有多少内存资源是空闲的。由于最重要的是要检查服务器上的内存资源,因此最好学习可以帮助我们进行服务器…

Linux下搭建SVN服务器【亲测可用】

Linux下搭建SVN服务器 简介第一步:通过yum命令安装svnserve,命令如下:第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)第三步:创建svn版本库第四步:配置…

Linux 运维知识梳理(6)高可用服务

一、高可用介绍 1、HA 高可用 ​高可用 HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指通过设计,减少系统服务不可用的时间。假设系统一直能够提供服务,我们说系统的可用性是 100%。如果…

批量去除PDF的水印(完全免费)

在这里给大家推荐一款好用的软件,帮助去除PDF的水印 具体步骤: 1.选择一个PDF,并将想要删除的水印添加到水印待去除列表 2.点击下一步,便可生成相应的文件,保存即可

可以一键去除水印的工具哪个好

我们平时不管是阅读自媒体文章还是其他的逛微博,看到的很多图片都是有水印的存在的,如果是自己需要的图片,看起来就不是很好看,当做素材使用的话也会影响视觉效果,那可以一键去除水印的工具哪个好呢? 1、既…

烦人的Windows桌面水印——一键去除工具

相信大多数使用过Windows的小伙伴都遇见过这个问题,当Windows未激活或者使用预览版时,桌面右下角竟然会有水印,就像下面这样:   有强迫症的我肯定受不了的,于是找到了一款非常好用的软件,–>官网传送…

​在线去水印软件网站​

地址:在线去水印软件网站 软件界面如图所示。 把有多余人或物的图片添加在图片去水印的栏目,通过工具把将要去除的部位圈出,然后按“开始去水印”并下载保存文件即可获得去水印后的图片啦,过程30秒钟即可搞定。 能够1:1的无损实现…

PS去除水印

PS去除水印五种方法 方法一 裁剪法 适用范围 水印位于图片边缘, 删除后对图片无影响 操作步骤 C键 → \rightarrow →选中裁剪区域 方法二 色阶法 适用范围 文件上不透明水印 操作步骤 灰色水印:套索工具 → \rightarrow →框中水印 → \righ…