当前位置: 首页 > news >正文

网站建设实训经验总结进网站后台显示空白

网站建设实训经验总结,进网站后台显示空白,苏州建设教育协会网站,莱芜住房和城乡建设厅网站计算机网络基础 网络分层模型 OSI 七层模型是什么#xff1f;每一层的作用是什么#xff1f; OSI 七层模型 是国际标准化组织提出的一个网络分层模型#xff0c;其大体结构以及每一层提供的功能如下图所示#xff1a; 每一层都专注做一件事情#xff0c;并且每一层都需…计算机网络基础 网络分层模型 OSI 七层模型是什么每一层的作用是什么 OSI 七层模型 是国际标准化组织提出的一个网络分层模型其大体结构以及每一层提供的功能如下图所示 每一层都专注做一件事情并且每一层都需要使用下一层提供的功能比如传输层需要使用网络层提供的路由和寻址功能这样传输层才知道把数据传输到哪里去。 OSI 的七层体系结构概念清楚理论也很完整但是它比较复杂而且不实用而且有些功能在多个层中重复出现。 上面这种图可能比较抽象再来一个比较生动的图片。下面这个图片是我在国外的一个网站上看到的非常赞 TCP/IP 四层模型是什么每一层的作用是什么 TCP/IP 四层模型 是目前被广泛采用的一种模型,我们可以将 TCP / IP 模型看作是 OSI 七层模型的精简版本由以下 4 层组成 应用层传输层网络层网络接口层 需要注意的是我们并不能将 TCP/IP 四层模型 和 OSI 七层模型完全精确地匹配起来不过可以简单将两者对应起来如下图所示 为什么网络要分层 说到分层我们先从我们平时使用框架开发一个后台程序来说我们往往会按照每一层做不同的事情的原则将系统分为三层复杂的系统分层会更多: Repository数据库操作Service业务操作Controller前后端数据交互 复杂的系统需要分层因为每一层都需要专注于一类事情。网络分层的原因也是一样每一层只专注于做一类事情。 好了再来说回“为什么网络要分层”。我觉得主要有 3 方面的原因 各层之间相互独立各层之间相互独立各层之间不需要关心其他层是如何实现的只需要知道自己如何调用下层提供好的功能就可以了可以简单理解为接口调用。这个和我们对开发时系统进行分层是一个道理。提高了灵活性和可替换性每一层都可以使用最适合的技术来实现你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。并且每一层都可以根据需要进行修改或替换而不会影响到整个网络的结构。这个和我们平时开发系统的时候要求的高内聚、低耦合的原则也是可以对应上的。大问题化小分层可以将复杂的网络问题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计实现和标准化。 这个和我们平时开发的时候一般会将系统功能分解然后将复杂的问题分解为容易理解的更小的问题是相对应的这些较小的问题具有更好的边界目标和接口定义。 我想到了计算机世界非常非常有名的一句话这里分享一下 计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决计算机整个体系从上到下都是按照严格的层次结构设计的。 常见网络协议 应用层有哪些常见的协议 HTTPHypertext Transfer Protocol超文本传输协议基于 TCP 协议是一种用于传输超文本和多媒体内容的协议主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。当我们使用浏览器浏览网页的时候我们网页就是通过 HTTP 请求进行加载的。SMTPSimple Mail Transfer Protocol简单邮件发送协议基于 TCP 协议是一种用于发送电子邮件的协议。注意 ⚠️SMTP 协议只负责邮件的发送而不是接收。要从邮件服务器接收邮件需要使用 POP3 或 IMAP 协议。POP3/IMAP邮件接收协议基于 TCP 协议两者都是负责邮件接收的协议。IMAP 协议是比 POP3 更新的协议它在功能和性能上都更加强大。IMAP 支持邮件搜索、标记、分类、归档等高级功能而且可以在多个设备之间同步邮件状态。几乎所有现代电子邮件客户端和服务器都支持 IMAP。FTPFile Transfer Protocol文件传输协议 : 基于 TCP 协议是一种用于在计算机之间传输文件的协议可以屏蔽操作系统和文件存储方式。注意 ⚠️FTP 是一种不安全的协议因为它在传输过程中不会对数据进行加密。建议在传输敏感数据时使用更安全的协议如 SFTP。Telnet远程登陆协议基于 TCP 协议用于通过一个终端登陆到其他服务器。Telnet 协议的最大缺点之一是所有数据包括用户名和密码均以明文形式发送这有潜在的安全风险。这就是为什么如今很少使用 Telnet而是使用一种称为 SSH 的非常安全的网络传输协议的主要原因。SSHSecure Shell Protocol安全的网络传输协议基于 TCP 协议通过加密和认证机制实现安全的访问和文件传输等业务RTPReal-time Transport Protocol实时传输协议通常基于 UDP 协议但也支持 TCP 协议。它提供了端到端的实时传输数据的功能但不包含资源预留存、不保证实时传输质量这些功能由 WebRTC 实现。DNSDomain Name System域名管理系统: 基于 UDP 协议用于解决域名和 IP 地址的映射问题。 传输层有哪些常见的协议 TCPTransmission Control Protocol传输控制协议 提供 面向连接 的可靠 的数据传输服务。UDPUser Datagram Protocol用户数据协议提供 无连接 的尽最大努力 的数据传输服务不保证数据传输的可靠性简单高效。 网络层有哪些常见的协议 IPInternet Protocol网际协议TCP/IP 协议中最重要的协议之一属于网络层的协议主要作用是定义数据包的格式、对数据包进行路由和寻址以便它们可以跨网络传播并到达正确的目的地。目前 IP 协议主要分为两种一种是过去的 IPv4另一种是较新的 IPv6目前这两种协议都在使用但后者已经被提议来取代前者。ARPAddress Resolution Protocol地址解析协议ARP 协议解决的是网络层地址和链路层地址之间的转换问题。因为一个 IP 数据报在物理上传输的过程中总是需要知道下一跳物理上的下一个目的地该去往何处但 IP 地址属于逻辑地址而 MAC 地址才是物理地址ARP 协议解决了 IP 地址转 MAC 地址的一些问题。ICMPInternet Control Message Protocol互联网控制报文协议一种用于传输网络状态和错误消息的协议常用于网络诊断和故障排除。例如Ping 工具就使用了 ICMP 协议来测试网络连通性。NATNetwork Address Translation网络地址转换协议NAT 协议的应用场景如同它的名称——网络地址转换应用于内部网到外部网的地址转换过程中。具体地说在一个小的子网局域网LAN内各主机使用的是同一个 LAN 下的 IP 地址但在该 LAN 以外在广域网WAN中需要一个统一的 IP 地址来标识该 LAN 在整个 Internet 上的位置。OSPFOpen Shortest Path First开放式最短路径优先一种内部网关协议Interior Gateway ProtocolIGP也是广泛使用的一种动态路由协议基于链路状态算法考虑了链路的带宽、延迟等因素来选择最佳路径。RIP(Routing Information Protocol路由信息协议一种内部网关协议Interior Gateway ProtocolIGP也是一种动态路由协议基于距离向量算法使用固定的跳数作为度量标准选择跳数最少的路径作为最佳路径。BGPBorder Gateway Protocol边界网关协议一种用来在路由选择域之间交换网络层可达性信息Network Layer Reachability InformationNLRI的路由选择协议具有高度的灵活性和可扩展性。 HTTP 从输入 URL 到页面展示到底发生了什么非常重要 类似的问题打开一个网页整个过程会使用哪些协议 先来看一张图来源于《图解 HTTP》 上图有一个错误需要注意是 OSPF 不是 OPSF。 OSPFOpen Shortest Path Firstospf开放最短路径优先协议, 是由 Internet 工程任务组开发的路由选择协议 总体来说分为以下几个步骤: 在浏览器中输入指定网页的 URL。浏览器通过 DNS 协议获取域名对应的 IP 地址。浏览器根据 IP 地址和端口号向目标服务器发起一个 TCP 连接请求。浏览器在 TCP 连接上向服务器发送一个 HTTP 请求报文请求获取网页的内容。服务器收到 HTTP 请求报文后处理请求并返回 HTTP 响应报文给浏览器。浏览器收到 HTTP 响应报文后解析响应体中的 HTML 代码渲染网页的结构和样式同时根据 HTML 中的其他资源的 URL如图片、CSS、JS 等再次发起 HTTP 请求获取这些资源的内容直到网页完全加载显示。浏览器在不需要和服务器通信时可以主动关闭 TCP 连接或者等待服务器的关闭请求。 HTTP 状态码有哪些 HTTP 状态码用于描述 HTTP 请求的结果比如 2xx 就代表请求被成功处理。 HTTP Header 中常见的字段有哪些 请求头字段名说明示例Accept能够接受的回应内容类型Content-Types。Accept: text/plainAccept-Charset能够接受的字符集Accept-Charset: utf-8Accept-Datetime能够接受的按照时间来表示的版本Accept-Datetime: Thu, 31 May 2007 20:35:00 GMTAccept-Encoding能够接受的编码方式列表。参考 HTTP 压缩。Accept-Encoding: gzip, deflateAccept-Language能够接受的回应内容的自然语言列表。Accept-Language: en-USAuthorization用于超文本传输协议的认证的认证信息Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQCache-Control用来指定在这次的请求/响应链中的所有缓存机制 都必须 遵守的指令Cache-Control: no-cacheConnection该浏览器想要优先使用的连接类型Connection: keep-aliveContent-Length以八位字节数组8 位的字节表示的请求体的长度Content-Length: 348Content-MD5请求体的内容的二进制 MD5 散列值以 Base64 编码的结果Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQContent-Type请求体的多媒体类型用于 POST 和 PUT 请求中Content-Type: application/x-www-form-urlencodedCookie之前由服务器通过 Set-Cookie下文详述发送的一个超文本传输协议 CookieCookie: $Version1; Skinnew;Date发送该消息的日期和时间(按照 RFC 7231 中定义的超文本传输协议日期格式来发送)Date: Tue, 15 Nov 1994 08:12:31 GMTExpect表明客户端要求服务器做出特定的行为Expect: 100-continueFrom发起此请求的用户的邮件地址From: userexample.comHost服务器的域名(用于虚拟主机)以及服务器所监听的传输控制协议端口号。如果所请求的端口是对应的服务的标准端口则端口号可被省略。Host: en.wikipedia.orgIf-Match仅当客户端提供的实体与服务器上对应的实体相匹配时才进行对应的操作。主要作用是用于像 PUT 这样的方法中仅当从用户上次更新某个资源以来该资源未被修改的情况下才更新该资源。If-Match: 737060cd8c284d8af7ad3082f209582dIf-Modified-Since允许服务器在请求的资源自指定的日期以来未被修改的情况下返回 304 Not Modified 状态码If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMTIf-None-Match允许服务器在请求的资源的 ETag 未发生变化的情况下返回 304 Not Modified 状态码If-None-Match: 737060cd8c284d8af7ad3082f209582dIf-Range如果该实体未被修改过则向我发送我所缺少的那一个或多个部分否则发送整个新的实体If-Range: 737060cd8c284d8af7ad3082f209582dIf-Unmodified-Since仅当该实体自某个特定时间以来未被修改的情况下才发送回应。If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMTMax-Forwards限制该消息可被代理及网关转发的次数。Max-Forwards: 10Origin发起一个针对跨来源资源共享的请求。Origin: http://www.example-social-network.comPragma与具体的实现相关这些字段可能在请求/回应链中的任何时候产生多种效果。Pragma: no-cacheProxy-Authorization用来向代理进行认证的认证信息。Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQRange仅请求某个实体的一部分。字节偏移以 0 开始。参见字节服务。Range: bytes500-999Referer表示浏览器所访问的前一个页面正是那个页面上的某个链接将浏览器带到了当前所请求的这个页面。Referer: http://en.wikipedia.org/wiki/Main_PageTE浏览器预期接受的传输编码方式可使用回应协议头 Transfer-Encoding 字段中的值TE: trailers, deflateUpgrade要求服务器升级到另一个协议。Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11User-Agent浏览器的浏览器身份标识字符串User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0Via向服务器告知这个请求是由哪些代理发出的。Via: 1.0 fred, 1.1 example.com (Apache/1.1)Warning一个一般性的警告告知在实体内容体中可能存在错误。Warning: 199 Miscellaneous warning HTTP 和 HTTPS 有什么区别重要 端口号HTTP 默认是 80HTTPS 默认是 443。URL 前缀HTTP 的 URL 前缀是 http://HTTPS 的 URL 前缀是 https://。安全性和资源消耗HTTP 协议运行在 TCP 之上所有传输的内容都是明文客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密加密采用对称加密但对称加密的密钥用服务器方的证书进行了非对称加密。所以说HTTP 安全性没有 HTTPS 高但是 HTTPS 比 HTTP 耗费更多服务器资源。SEO搜索引擎优化搜索引擎通常会更青睐使用 HTTPS 协议的网站因为 HTTPS 能够提供更高的安全性和用户隐私保护。使用 HTTPS 协议的网站在搜索结果中可能会被优先显示从而对 SEO 产生影响 HTTP/1.0 和 HTTP/1.1 有什么区别 连接方式 : HTTP/1.0 为短连接HTTP/1.1 支持长连接。HTTP 协议的长连接和短连接实质上是 TCP 协议的长连接和短连接。状态响应码 : HTTP/1.1 中新加入了大量的状态码光是错误响应状态码就新增了 24 种。比如说100 (Continue)——在请求大资源前的预热请求206 (Partial Content)——范围请求的标识码409 (Conflict)——请求与当前资源的规定冲突410 (Gone)——资源已被永久转移而且没有任何已知的转发地址。缓存机制 : 在 HTTP/1.0 中主要使用 Header 里的 If-Modified-Since,Expires 来做为缓存判断的标准HTTP/1.1 则引入了更多的缓存控制策略例如 Entity tagIf-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略。带宽HTTP/1.0 中存在一些浪费带宽的现象例如客户端只是需要某个对象的一部分而服务器却将整个对象送过来了并且不支持断点续传功能HTTP/1.1 则在请求头引入了 range 头域它允许只请求资源的某个部分即返回码是 206Partial Content这样就方便了开发者自由的选择以便于充分利用带宽和连接。Host 头Host Header处理 :HTTP/1.1 引入了 Host 头字段允许在同一 IP 地址上托管多个域名从而支持虚拟主机的功能。而 HTTP/1.0 没有 Host 头字段无法实现虚拟主机 HTTP/1.1 和 HTTP/2.0 有什么区别 多路复用MultiplexingHTTP/2.0 在同一连接上可以同时传输多个请求和响应可以看作是 HTTP/1.1 中长链接的升级版本互不干扰。HTTP/1.1 则使用串行方式每个请求和响应都需要独立的连接而浏览器为了控制资源会有 6-8 个 TCP 连接的限制。。这使得 HTTP/2.0 在处理多个请求时更加高效减少了网络延迟和提高了性能。二进制帧Binary FramesHTTP/2.0 使用二进制帧进行数据传输而 HTTP/1.1 则使用文本格式的报文。二进制帧更加紧凑和高效减少了传输的数据量和带宽消耗。头部压缩Header CompressionHTTP/1.1 支持Body压缩Header不支持压缩。HTTP/2.0 支持对Header压缩使用了专门为Header压缩而设计的 HPACK 算法减少了网络开销。服务器推送Server PushHTTP/2.0 支持服务器推送可以在客户端请求一个资源时将其他相关资源一并推送给客户端从而减少了客户端的请求次数和延迟。而 HTTP/1.1 需要客户端自己发送请求来获取相关资源。 HTTP/2.0 多路复用效果图图源 HTTP/2 For Web Developers 可以看到HTTP/2.0 的多路复用使得不同的请求可以共用一个 TCP 连接避免建立多个连接带来不必要的额外开销而 HTTP/1.1 中的每个请求都会建立一个单独的连接 HTTP/2.0 和 HTTP/3.0 有什么区别 传输协议HTTP/2.0 是基于 TCP 协议实现的HTTP/3.0 新增了 QUICQuick UDP Internet Connections 协议来实现可靠的传输提供与 TLS/SSL 相当的安全性具有较低的连接和传输延迟。你可以将 QUIC 看作是 UDP 的升级版本在其基础上新增了很多功能比如加密、重传等等。HTTP/3.0 之前名为 HTTP-over-QUIC从这个名字中我们也可以发现HTTP/3 最大的改造就是使用了 QUIC。连接建立HTTP/2.0 需要经过经典的 TCP 三次握手过程由于安全的 HTTPS 连接建立还需要 TLS 握手共需要大约 3 个 RTT。由于 QUIC 协议的特性TLS 1.3TLS 1.3 除了支持 1 个 RTT 的握手还支持 0 个 RTT 的握手连接建立仅需 0-RTT 或者 1-RTT。这意味着 QUIC 在最佳情况下不需要任何的额外往返时间就可以建立新连接。头部压缩HTTP/2.0 使用 HPACK 算法进行头部压缩而 HTTP/3.0 使用更高效的 QPACK 头压缩算法。队头阻塞HTTP/2.0 多请求复用一个 TCP 连接一旦发生丢包就会阻塞住所有的 HTTP 请求。由于 QUIC 协议的特性HTTP/3.0 在一定程度上解决了队头阻塞Head-of-Line blocking, 简写HOL blocking问题一个连接建立多个不同的数据流这些数据流之间独立互不影响某个数据流发生丢包了其数据流不受影响本质上是多路复用轮询。连接迁移HTTP/3.0 支持连接迁移因为 QUIC 使用 64 位 ID 标识连接只要 ID 不变就不会中断网络环境改变时如从 Wi-Fi 切换到移动数据也能保持连接。而 TCP 连接是由源 IP源端口目的 IP目的端口组成这个四元组中一旦有一项值发生改变这个连接也就不能用了。错误恢复HTTP/3.0 具有更好的错误恢复机制当出现丢包、延迟等网络问题时可以更快地进行恢复和重传。而 HTTP/2.0 则需要依赖于 TCP 的错误恢复机制。安全性在 HTTP/2.0 中TLS 用于加密和认证整个 HTTP 会话包括所有的 HTTP 头部和数据负载。TLS 的工作是在 TCP 层之上它加密的是在 TCP 连接中传输的应用层的数据并不会对 TCP 头部以及 TLS 记录层头部进行加密所以在传输的过程中 TCP 头部可能会被攻击者篡改来干扰通信。而 HTTP/3.0 的 QUIC 对整个数据包包括报文头和报文体进行了加密与认证处理保障安全性。 HTTP/1.0、HTTP/2.0 和 HTTP/3.0 的协议栈比较 下图是一个更详细的 HTTP/2.0 和 HTTP/3.0 对比图 从上图可以看出 HTTP/2.0使用 TCP 作为传输协议、使用 HPACK 进行头部压缩、依赖 TLS 进行加密。HTTP/3.0使用基于 UDP 的 QUIC 协议、使用更高效的 QPACK 进行头部压缩、在 QUIC 中直接集成了 TLS。QUIC 协议具备连接迁移、拥塞控制与避免、流量控制等特性 HTTP 是不保存状态的协议, 如何保存用户状态? HTTP 是一种不保存状态即无状态stateless协议。也就是说 HTTP 协议自身不对请求和响应之间的通信状态进行保存。那么我们如何保存用户状态呢Session 机制的存在就是为了解决这个问题Session 的主要作用就是通过服务端记录用户的状态。典型的场景是购物车当你要添加商品到购物车的时候系统不知道是哪个用户操作的因为 HTTP 协议是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了一般情况下服务器会在一定时间内保存这个 Session过了时间限制就会销毁这个 Session。 在服务端保存 Session 的方法很多最常用的就是内存和数据库(比如是使用内存数据库 redis 保存)。既然 Session 存放在服务器端那么我们如何实现 Session 跟踪呢大部分情况下我们都是通过在 Cookie 中附加一个 Session ID 来方式来跟踪。 Cookie 被禁用怎么办? 最常用的就是利用 URL 重写把 Session ID 直接附加在 URL 路径的后面。 URI 和 URL 的区别是什么? URI(Uniform Resource Identifier) 是统一资源标志符可以唯一标识一个资源。URL(Uniform Resource Locator) 是统一资源定位符可以提供该资源的路径。它是一种具体的 URI即 URL 可以用来标识一个资源而且还指明了如何 locate 这个资源。 URI 的作用像身份证号一样URL 的作用更像家庭住址一样。URL 是一种具体的 URI它不仅唯一标识资源而且还提供了定位该资源的信息 GET 和 POST 的区别 GET 和 POST 是 HTTP 协议中两种常用的请求方法它们在不同的场景和目的下有不同的特点和用法。一般来说可以从以下几个方面来区分二者重点搞清两者在语义上的区别即可 语义主要区别GET 通常用于获取或查询资源而 POST 通常用于创建或修改资源。幂等GET 请求是幂等的即多次重复执行不会改变资源的状态而 POST 请求是不幂等的即每次执行可能会产生不同的结果或影响资源的状态。格式GET 请求的参数通常放在 URL 中形成查询字符串querystring而 POST 请求的参数通常放在请求体body中可以有多种编码格式如 application/x-www-form-urlencoded、multipart/form-data、application/json 等。GET 请求的 URL 长度受到浏览器和服务器的限制而 POST 请求的 body 大小则没有明确的限制。不过实际上 GET 请求也可以用 body 传输数据只是并不推荐这样做因为这样可能会导致一些兼容性或者语义上的问题。缓存由于 GET 请求是幂等的它可以被浏览器或其他中间节点如代理、网关缓存起来以提高性能和效率。而 POST 请求则不适合被缓存因为它可能有副作用每次执行可能需要实时的响应。安全性GET 请求和 POST 请求如果使用 HTTP 协议的话那都不安全因为 HTTP 协议本身是明文传输的必须使用 HTTPS 协议来加密传输数据。另外GET 请求相比 POST 请求更容易泄露敏感数据因为 GET 请求的参数通常放在 URL 中。 再次提示重点搞清两者在语义上的区别即可实际使用过程中也是通过语义来区分使用 GET 还是 POST。不过也有一些项目所有的请求都用 POST这个并不是固定的项目组达成共识即可。 WebSocket 什么是 WebSocket? WebSocket 是一种基于 TCP 连接的全双工通信协议即客户端和服务器可以同时发送和接收数据。 WebSocket 协议在 2008 年诞生2011 年成为国际标准几乎所有主流较新版本的浏览器都支持该协议。不过WebSocket 不只能在基于浏览器的应用程序中使用很多编程语言、框架和服务器都提供了 WebSocket 支持。 WebSocket 协议本质上是应用层的协议用于弥补 HTTP 协议在持久通信能力上的不足。客户端和服务器仅需一次握手两者之间就直接可以创建持久性的连接并进行双向数据传输 下面是 WebSocket 的常见应用场景 视频弹幕实时消息推送详见Web 实时消息推送详解这篇文章实时游戏对战多用户协同编辑社交聊天…… WebSocket 和 HTTP 有什么区别 WebSocket 和 HTTP 两者都是基于 TCP 的应用层协议都可以在网络中传输数据。 下面是二者的主要区别 WebSocket 是一种双向实时通信协议而 HTTP 是一种单向通信协议。并且HTTP 协议下的通信只能由客户端发起服务器无法主动通知客户端。WebSocket 使用 ws:// 或 wss://使用 SSL/TLS 加密后的协议类似于 HTTP 和 HTTPS 的关系 作为协议前缀HTTP 使用 http:// 或 https:// 作为协议前缀。WebSocket 可以支持扩展用户可以扩展协议实现部分自定义的子协议如支持压缩、加密等。WebSocket 通信数据格式比较轻量用于协议控制的数据包头部相对较小网络开销小而 HTTP 通信每次都要携带完整的头部网络开销较大HTTP/2.0 使用二进制帧进行数据传输还支持头部压缩减少了网络开销。 WebSocket 的工作过程是什么样的 WebSocket 的工作过程可以分为以下几个步骤 客户端向服务器发送一个 HTTP 请求请求头中包含 Upgrade: websocket 和 Sec-WebSocket-Key 等字段表示要求升级协议为 WebSocket服务器收到这个请求后会进行升级协议的操作如果支持 WebSocket它将回复一个 HTTP 101 状态码响应头中包含 Connection: Upgrade和 Sec-WebSocket-Accept: xxx 等字段、表示成功升级到 WebSocket 协议。客户端和服务器之间建立了一个 WebSocket 连接可以进行双向的数据传输。数据以帧frames的形式进行传送WebSocket 的每条消息可能会被切分成多个数据帧最小单位。发送端会将消息切割成多个帧发送给接收端接收端接收消息帧并将关联的帧重新组装成完整的消息。客户端或服务器可以主动发送一个关闭帧表示要断开连接。另一方收到后也会回复一个关闭帧然后双方关闭 TCP 连接。 另外建立 WebSocket 连接之后通过心跳机制来保持 WebSocket 连接的稳定性和活跃性。 SSE 与 WebSocket 有什么区别 摘自Web 实时消息推送详解。 SSE 与 WebSocket 作用相似都可以建立服务端与浏览器之间的通信实现服务端向客户端推送消息但还是有些许不同 SSE 是基于 HTTP 协议的它们不需要特殊的协议或服务器实现即可工作WebSocket 需单独服务器来处理协议。SSE 单向通信只能由服务端向客户端单向通信WebSocket 全双工通信即通信的双方可以同时发送和接受信息。SSE 实现简单开发成本低无需引入其他组件WebSocket 传输数据需做二次解析开发门槛高一些。SSE 默认支持断线重连WebSocket 则需要自己实现。SSE 只能传送文本消息二进制数据需要经过编码后传送WebSocket 默认支持传送二进制数据。 SSE 与 WebSocket 该如何选择 SSE 好像一直不被大家所熟知一部分原因是出现了 WebSocket这个提供了更丰富的协议来执行双向、全双工通信。对于游戏、即时通信以及需要双向近乎实时更新的场景拥有双向通道更具吸引力。 但是在某些情况下不需要从客户端发送数据。而你只需要一些服务器操作的更新。比如站内信、未读消息数、状态更新、股票行情、监控数量等场景SSE 不管是从实现的难易和成本上都更加有优势。此外SSE 具有 WebSocket 在设计上缺乏的多种功能例如自动重新连接、事件 ID 和发送任意事件的能力 PING PING 命令的作用是什么 PING 命令是一种常用的网络诊断工具经常用来测试网络中主机之间的连通性和网络延迟。 这里简单举一个例子我们来 PING 一下百度。 # 发送4个PING请求数据包到 www.baidu.com ❯ ping -c 4 www.baidu.comPING www.a.shifen.com (14.119.104.189): 56 data bytes 64 bytes from 14.119.104.189: icmp_seq0 ttl54 time27.867 ms 64 bytes from 14.119.104.189: icmp_seq1 ttl54 time28.732 ms 64 bytes from 14.119.104.189: icmp_seq2 ttl54 time27.571 ms 64 bytes from 14.119.104.189: icmp_seq3 ttl54 time27.581 ms--- www.a.shifen.com ping statistics --- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/stddev 27.571/27.938/28.732/0.474 ms PING 命令的输出结果通常包括以下几部分信息 ICMP Echo Request请求报文信息序列号、TTLTime to Live值。目标主机的域名或 IP 地址输出结果的第一行。往返时间RTTRound-Trip Time从发送 ICMP Echo Request请求报文到接收到 ICMP Echo Reply响应报文的总时间用来衡量网络连接的延迟。统计结果Statistics包括发送的 ICMP 请求数据包数量、接收到的 ICMP 响应数据包数量、丢包率、往返时间RTT的最小、平均、最大和标准偏差值。 如果 PING 对应的目标主机无法得到正确的响应则表明这两个主机之间的连通性存在问题有些主机或网络管理员可能禁用了对 ICMP 请求的回复这样也会导致无法得到正确的响应。如果往返时间RTT过高则表明网络延迟过高。 PING 命令的工作原理是什么 PING 基于网络层的 ICMPInternet Control Message Protocol互联网控制报文协议其主要原理就是通过在网络上发送和接收 ICMP 报文实现的。 ICMP 报文中包含了类型字段用于标识 ICMP 报文类型。ICMP 报文的类型有很多种但大致可以分为两类 查询报文类型向目标主机发送请求并期望得到响应。差错报文类型向源主机发送错误信息用于报告网络中的错误情况。 PING 用到的 ICMP Echo Request类型为 8 和 ICMP Echo Reply类型为 0 属于查询报文类型 。 PING 命令会向目标主机发送 ICMP Echo Request。如果两个主机的连通性正常目标主机会返回一个对应的 ICMP Echo Reply。 DNS DNS 的作用是什么 DNSDomain Name System域名管理系统是当用户使用浏览器访问网址之后使用的第一个重要协议。DNS 要解决的是域名和 IP 地址的映射问题 在一台电脑上可能存在浏览器 DNS 缓存操作系统 DNS 缓存路由器 DNS 缓存。如果以上缓存都查询不到那么 DNS 就闪亮登场了。 目前 DNS 的设计采用的是分布式、层次数据库结构DNS 是应用层协议它可以在 UDP 或 TCP 协议之上运行端口为 53 。 DNS 服务器有哪些根服务器有多少个 DNS 服务器自底向上可以依次分为以下几个层级(所有 DNS 服务器都属于以下四个类别之一): 根 DNS 服务器。根 DNS 服务器提供 TLD 服务器的 IP 地址。目前世界上只有 13 组根服务器我国境内目前仍没有根服务器。顶级域 DNS 服务器TLD 服务器。顶级域是指域名的后缀如com、org、net和edu等。国家也有自己的顶级域如uk、fr和ca。TLD 服务器提供了权威 DNS 服务器的 IP 地址。权威 DNS 服务器。在因特网上具有公共可访问主机的每个组织机构必须提供公共可访问的 DNS 记录这些记录将这些主机的名字映射为 IP 地址。本地 DNS 服务器。每个 ISP互联网服务提供商都有一个自己的本地 DNS 服务器。当主机发出 DNS 请求时该请求被发往本地 DNS 服务器它起着代理的作用并将该请求转发到 DNS 层次结构中。严格说来不属于 DNS 层级结构 世界上并不是只有 13 台根服务器这是很多人普遍的误解网上很多文章也是这么写的。实际上现在根服务器数量远远超过这个数量。最初确实是为 DNS 根服务器分配了 13 个 IP 地址每个 IP 地址对应一个不同的根 DNS 服务器。然而由于互联网的快速发展和增长这个原始的架构变得不太适应当前的需求。为了提高 DNS 的可靠性、安全性和性能目前这 13 个 IP 地址中的每一个都有多个服务器截止到 2023 年底所有根服务器之和达到了 1700 多台未来还会继续增加 DNS 劫持了解吗如何应对 DNS 劫持是一种网络攻击它通过修改 DNS 服务器的解析结果使用户访问的域名指向错误的 IP 地址从而导致用户无法访问正常的网站或者被引导到恶意的网站。DNS 劫持有时也被称为 DNS 重定向、DNS 欺骗或 DNS 污染。
http://www.dnsts.com.cn/news/231275.html

相关文章:

  • 网站建设设计 飞沐什么公司做网站好
  • 安徽六安房价竞价网站做seo
  • 响应式网站预览建站之星怎么弄相册
  • 中国建设监理协会网站个人会员系统栏长春网络有限公司
  • 沈阳商城网站建设2019做地方门户网站
  • 沧州网站建设公司wordpress模板上传图片
  • 做设计什么网站兼职软文自助发稿平台oem
  • 宝安网站建设定制关于做网站的论文
  • 中国建设银行数据管理部网站视觉差 网站
  • 四川网站建设 lkcms微商怎么加好友增加大量客源
  • 网站建设方案范文1000字定制型网页设计开发
  • 一个网站开发项目小组成员有什么自学网站建设的网站
  • 网站服务器怎么做常州模板网站建设价格
  • 网站对不同分辨率宝塔为wordpress安装redis
  • 网站建设与规划方案书常用网站网址
  • 行业网站建设教程wordpress怎么删除主题
  • 哈尔滨开发网站如何自己开一个网站
  • 平顶山做网站优化吉安信息网
  • 企业网站开发注意什么网站关键词引流
  • 建设商务网站过程c2c二手车交易平台
  • 企业网站导航优化做数据库与网站招什么人
  • 学校网站建设的流程做一个英文网站多少钱
  • 大兴区企业网站建设南隼深圳网站建设
  • 文件包上传的网站怎么做企业网络品牌维护
  • 静态网站建设的PPT网站名怎么写
  • 东莞网站建设网络公司排名网页小游戏有哪些
  • 怎么推广网站建设业务wordpress主动推送所有网址插件
  • 网站建设方案备案官方网站平台下载软件
  • 婚纱网站html源码江苏营销型网站建设公司
  • 大连h5网站开发做电商运营还是网站运营哪个好