浏览器抓取网页( HTTP和访问网页看Web页划等号会发生什么事情?)
优采云 发布时间: 2022-04-15 08:50浏览器抓取网页(
HTTP和访问网页看Web页划等号会发生什么事情?)
我是梨园微风。作为 IT 行业 25 年的老手,我年轻的时候经常把 HTTP 等同于访问网页和查看网页。这种误解使我对 HTTP 的理解仍然肤浅。. 今天,我将在这里写下我的经历。
HTTP 是一种基于 TCP 的协议,在客户端/服务器模式下工作。HTTP 之所以使用 TCP 而不是 UDP,是因为打开一个网页必须传输大量数据,而 TCP 协议提供传输控制,将数据有序组织,同时纠正乱序数据。客户端一般是终端用户,服务器一般是网站服务器。
客户端通过浏览器或其他工具向服务器上的指定端口(默认为 80))发起 HTTP 请求。收到请求后,服务器将响应消息发送回客户端。消息的内容可能是以下三种:
1.请求的文档2.错误消息3.附加信息
客户端请求和连接端口需要大于 1024。
当您在浏览器上单击此 URL 时会发生什么,我们来看看:
1.出现位置:客户端浏览器动作:用户点击URL 2.出现位置:客户端浏览器-->域名服务器动作:请求解析的IP地址3.出现位置:域名服务器-> 客户端浏览器动作:返回IP地址4.位置:客户端浏览器服务器(注意箭头,是双向的)动作:建立TCP连接,服务器端口80 5.出现位置:客户端浏览器-->服务器动作:请求消息 GET /blog/index.html 6. 出现位置:服务器 --> 客户端浏览器动作:响应和传输 HTML 文件 7. 出现位置:客户端浏览器服务器(注意箭头,它是双向的)动作:释放TCP连接
Web 服务器通常有很大的访问压力。为了提高效率,HTTP1.1 规定浏览器和服务器的连接时间很短。浏览器的每个请求都需要与服务器建立新的 TCP 连接。TCP 连接在请求后立即断开,服务器不会记录过去的请求。
这样,访问具有多个文档、图像或图片的网页需要建立多个独立的请求和响应连接,每个连接只传输一个文档、图像或图片。客户端和服务器需要频繁的建立和关闭连接,这会严重影响双方的性能。如果网页收录Applet、JavaScript、CSS,也会出现性能下降。
为了解决这个问题,HTTP1.1 后来开始支持长连接。这样就可以通过单个 TCP 连接传输多个 HTTP 请求和响应,大大减少了建立和关闭连接带来的消耗和延迟。这样,在访问多图片网页文件时,可以在同一个连接中传输多个请求和响应。当然,多个文件请求和响应仍然需要分别连接。
HTTP1.1 允许客户端进行下一个请求,而不需要等待上一个请求返回的结果,但是服务器必须按照收到请求的顺序返回结果,以确保客户端能够区分每个time 对请求的响应内容。