(电脑加载网页慢是怎么回事)
你对计算机网络的应用层了解多少?你知道吗?socket什么是套接字?你知道为什么你的网站访问缓慢吗?知道为什么fidder、Charles能抓到你的包吗?今天我们一一揭秘!
一、socket()套接字有哪些?套接字(socket)双向通信端口是网络中不同主机的应用过程的抽象端口,网络过程通信的一端是套接字,不同主机上的过程是通过套接字发送数据报告进行通信,如TCP协议使用主机IP地址 作为端口号TCP连接端点,这个端点。
套接字主要有以下三种类型:
流套接字(SOCK_STREAM): 基于流套接字TCP传输协议, 由于主要用于面向连接、可靠的数据传输服务,TCP根据协议的特点,使用流套接字进行通信时,可以保证数据没有错误,没有重复传输,并按顺序接收,通信双方不需要在程序中进行相应的处理。数据报套接字(SOCK_DGRAM): 因为UDP协议传输的是数据报告,因此数据报套字是基于UDP传输协议对应于无连接UDP该服务不能保证数据传输的可靠性, 也不能保证数据按顺序到达, 同时,通信两端无需长时间连接,UDP客户端向服务器发送数据后,您可以使用同一套接字向另一个服务器发送数据, 当使用UDP套接字时,需要在程序中处理丢包等问题。原始套接字(SOCK_RAW): 流套接字和数据报套接字只能抓取TCP和UDP当需要处理非传输层数据包或操作系统无法处理的数据包时,需要使用原始套接字发送协议数据。原始套接字(SOCK_RAW): 流套接字和数据报套接字只能抓取TCP和UDP协议的数据,当需要处理非传输层数据包或操作系统无法处理的数据包时,就需要使用原始套接字来发送。二、URI(统一资源标识符)和URL(统一资源定位符)之间的区别?URL(统一资源定位符) 它也可以说是我们通常在互联网上输入的网站,它一个互联网资源,并指定其操作或获取资源的方法,如CSDN的网址https://blog.csdn.net,该URL通过识别特定资源并表示资源的某种形式HTTPS从相应的位置获得协议。URL是URI的子集, 资源是什么?而URL还定义了如何访问资源,URI语义上的抽象概念可以是绝对的或相对的。而URL绝对必须提供足够的信息来定位,所以一般来说,只要能识别唯一的资源URI,在URI在此基础上,可以给出资源访问的方法是URL。
三、为什么 fidder,charles 能抓住你的包抓取数据包的过程如果我们需要捕获客户端的数据包,我们需要监控客户端和服务器之间的网络节点,监控任何网络节点(网卡),获取网卡中的所有数据,并根据网络协议分析这些数据,这是捕获包的基本原理。 中间的网络节点不受我们的控制,基本上不可能抓住包,所以我们只能在客户端和服务器之间抓住包。
① 用抓包工具抓取 HTTP 过程如下:
首先,包装工具将提供代理服务,客户端需要连接代理;客户端发送 HTTP 请求时,将通过抓包工具的代理显示要求的原文;使用原文将要求发送给服务器;服务器返回到抓包工具,抓包工具显示返回结果;抓包工具将服务器返回的结果返回客户端。这里的抓包工具相当于透明人。数据通过时,一只手接收数据,另一只手传输数据。
② 当抓取 HTTPS 数据包时:
客户端连接抓包工具提供的代理服务,并安装抓包工具的根证;客户端发出 HTTPS 请求、抓包工具模拟服务器和客户端 TLS握手交换密钥等流程;抓包工具发送一个 HTTPS 目标服务器请求客户端,并与目标服务器一起进行 TLS 握手交换密钥等流程;客户使用与包工具协议的密钥加密数据发送给包工具;包工具使用与客户协议的密钥解密数据并显示结果;包工具将解密的客户数据加密到目标服务器;服务器解密数据后,进行相应的逻辑处理,然后将返回结果使用与抓包工具协定好的密钥进行加密发送给抓包工具;抓包工具将服务器返回的结果,用与服务器协定好的密钥解密,并将结果进行展示;抓包工具将解密后的服务器返回数据,使用与客户端协定好的密钥进行加密后发送给客户端;客户端解密数据。此时抓包工具相当于客户端的服务器,相当于服务器的客户端。 在这个传输过程中,客户端会认为是目标服务器,服务器也会认为是请求发起的客户端。此时抓包工具相当于客户端的服务器,相当于服务器的客户端。
如果你访问一个网站很慢,如何调查和解决它?
网站打开慢的原因有很多,总结一下最常见的几个。检查本地网络是否正常,网络带宽是否被占用,如果有其他过程占用本地网络带宽。如果网络连接正常,则应通过调查网站的服务器速度ping命令检查连接到服务器的时间和丢包情况,如果服务器正常,丢包率一般不超过1%, 其次是ping值小,最后是ping如果ping最大和最小差值过大表明路由不稳定。 或者我们在同一台服务器上查看其他网站的速度,看看其他网站的速度是否也很慢。如果网站打开速度快、慢,有时甚至不能打开,那么空间可能不稳定,如果确定是问题,那么你应该找到你的空间提供商来改变空间,你可以选择购买双线或多线空间。网站问题主要包括网站程序设计、网页结构设计和网页内容三个部分。1、网站程序设计: 在访问网页时,有代码可以减慢网站的打开速度,直接影响网站的打开速度,
例如,网页中使用的统计代码通常放置在网站的末尾,以防止其在加载过程中延迟。网页结构设计: 查看网页布局的代码,如果使用网页table布局网页,检查嵌套次数是否过多,或使用大表格分为多个小表格布局,此时可使用div配合css来改进。
3.网页内容: 检查网页上是否有许多大图片和大图片flash存在,我们可以通过降低图片质量,降低图片尺寸,少用太多flash来解决。或者有些网站可能会引用其他网站的内容, 如果一些被引用的网站访问缓慢或不存在,网站的打开速度自然会减慢,因此不必要的加载项可以直接减少。五、谈谈网页分析的全过程【用户输入网站到显示相应页面的全过程】
在用户输入URL之后浏览器会先进行DNS将用户输入的域名分析成web服务器的IP地址,以后会通过IP三次与服务器握手TCP连接完成后通过HTTP协议发送客户端请求,在服务器接收到该请求之后,会根据该请求体中的内容决定如何获取目标文件,并且将目标文件返回给客户端;浏览器在收到文件之后,首先会通过解析HTML文件为DOM树,再解析CSS文件是渲染树,在CSS文件分析完成后,网页将根据渲染树的布局显示在页面上;最后,客户端和服务器四次挥手断开连接。
过程如下图所示:
名词分析:
DNS 解析: 当用户输入网站并按下返回按钮时,浏览器获得域名,我们需要的是实际通信过程中的域名 IP因此,我们需要将域名转换为相应的地址 IP 地址。TCP 连接: 浏览器通过 DNS 获取到 Web 服务器是真的 IP 地址后,便向 Web 服务器发起 TCP 连接请求,通过 TCP三次握手建立好连接后,浏览器便可以将 HTTP 向服务器发送请求数据。发送 HTTP 请求: 浏览器向 Web 发起一个服务器 HTTP 请求,HTTP 协议是基于的 TCP 本质上建立了协议上的应用层协议TCP根据连接HTTP协议标准发送要求网页的请求。发送 HTTP 请求: 浏览器向 Web 发起一个服务器 HTTP 请求,HTTP 协议是基于的 TCP 协议之上的应用层协议,其本质是在建立起的TCP根据连接HTTP协议标准发送要求网页的请求。负载均衡等操作将涉及到这一过程。
扩展:负载平衡是什么?负载均衡
, 英文名为 Load Balance,其含义是将负载(工作任务)平衡并分配到多个操作单元, 例如 FTP 服务器、Web 协同完成工作任务,如服务器、企业核心服务器等。在现有网络上建立负载均衡,
它为扩大服务器和网络设备的带宽、增加吞吐量、增强网络处理能力、提高网络灵活性和可用性提供了透明、廉价、有效的方法。负载平衡是分布式系统架构设计中必须考虑的因素之一, 例如,为了处理大量用户在天猫、京东等大型用户网站上发起的请求,他们经常使用分布式服务器,并通过引入反向代理将用户请求均匀分发给每个服务器,这个过程实现了负载平衡。处理请求并返回: 从客户端获取服务器 HTTP 请求后,将根据 HTTP 决定如何获取相应的文件,并将文件发送给浏览器。浏览器渲染: 首先,浏览器根据响应开始显示页面 HTML 文件构建 DOM 树,然后分析 CSS渲染树的文件构建,当渲染树完成后,浏览器开始布局渲染树,并将其绘制到屏幕上。断开连接: 客户端和服务器通过四次挥手终止 TCP 连接。
今日总结
今天的内容主要是学习网站的请求和显示过程,了解通信的原则,URL和URI区别,如何解决网站访问缓慢等问题。
如果您遇到其他相关的面试问题,请在评论区留言,我将在文章中总结您的提议, 欢迎在评论区打卡学习!