http

计算机网络:OSI、TCP、UDP、IP、HTTP/HTTPS知识总结

计算机网络:OSI、TCP、UDP、IP、HTTP/HTTPS知识总结
播报文章

技术那点事

发布时间: 2019-07-03 08:31
关注

OSI,TCP/IP,五层协议的体系结构

每一层的作用:

物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)数据链路层:将比特组装成帧和点到点的传递(帧Frame)网络层:负责数据包从源到宿的传递和网际互连(包Packet)传输层:提供端到端的可靠报文传递和错误恢复(段Segment)会话层:建立、管理和终止会话(会话协议数据单元SPDU)表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)应用层:允许访问OSI环境的手段(应用协议数据单元APDU)每一层的协议:

物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)传输层:TCP、UDP、SPX会话层:NFS、SQL、NETBIOS、RPC表示层:JPEG、MPEG、ASII应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFSTCP对应的应用层协议

FTP:定义了文件传输协议,使用21端口。常说某某计算机开了FTP服务便是启动了文件传输服务。下载文件,上传主页,都要用到FTP服务。Telnet:它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务。如以前的BBS是-纯字符界面的,支持BBS的服务器将23端口打开,对外提供服务。SMTP:定义了简单邮件传送协议,现在很多邮件服务器都用的是这个协议,用于发送邮件。如常见的免费邮件服务中用的就是这个邮件服务端口,所以在电子邮件设置-中常看到有这么SMTP端口设置这个栏,服务器开放的是25号端口。POP3:它是和SMTP对应,POP3用于接收邮件。通常情况下,POP3协议所用的是110端口。也是说,只要你有相应的使用POP3协议的程序(例如Fo-xmail或Outlook),就可以不以Web方式登陆进邮箱界面,直接用邮件程序就可以收到邮件(如是163邮箱就没有必要先进入网易网站,再进入自己的邮-箱来收信)。HTTP:从Web服务器传输超文本到本地浏览器的传送协议。UDP对应的应用层协议

DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。TFTP(Trival File Transfer Protocal):简单文件传输协议,该协议在熟知端口69上使用UDP服务。

        

关于队头阻塞(Head-of-Line blocking),看这一篇就足够了

(译)Robin Marx: QUIC 和 HTTP/3 队头阻塞的细节

作者:Robin Marx,原文:Head-of-Line Blocking in QUIC and HTTP/3: The DetailsGitHubrmarx/holblocking-blogpost

您可能已经听说,经过4年的工作,新的 HTTP/3 和 QUIC 协议终于接近正式标准化。预览版现在可以在服务器和浏览器中进行测试

与 HTTP/2 相比,HTTP/3 有很大的性能改进,这主要是因为它将底层传输协议从 TCP 改为基于 UDP 的 QUIC。在这篇文章中,我们将深入了解其中的一项改进,即消除…

            

HTTP请求方法

HTTP请求方法

HTTP方法是启动请求字符串中的必需参数。一种方法可以称为请求类型,并且基于此类型,必须在服务器上执行某些操作并将响应返回给客户端。该方法的名称区分大小写,并且通常是一个简短的单词,由英文大写字母组成。

接收请求时,服务器尝试确定请求的方法,如果失败,则返回带有代码501和短语的响应消息Not Implemented。如果服务器已定义方法,但是无法将其应用于请求的资源,则返回带有代码405和短语的响应消息Method Not Allowed了解有关HTTP响应状态代码的更多信息。如果出现这两个选项中的任何一个,则服务器需要在返回响应时添加标头Allow 并列出服务器支持的所有方法。…

一文串联 HTTP / [0.9 | 1.0 | 1.1 | 2 | 3]

1989 年,万维网诞生之后,HTTP 迅速成为主导世界的应用层协议。在今天,几乎任何场景都或多或少用到了 HTTP 协议。

在 30 多年的历史中,HTTP 协议本身有比较大的发展,同时,还有一些重大的变动也在酝酿之中。这些演化使得这个协议的表现力更强,性能更好,更能满足日新月异的应用需求。本文就来回顾和展望一下 HTTP 的历史和未来。

  • HTTP/0.9
  • HTTP/1.0
  • HTTP/1.1
  • HTTP/2
  • HTTP/3

HTTP/0.9

HTTP/0.9 诞生于 1991 年,是 HTTP 协议的最初版,构造十分简单:

  • 请求端只支持 GET 请求
  • 响应端只能返回 HTML 文本数据
GET /index.html
<html>
  <body>
    Hello World
  </body>
</html>

请求示意图如下:

            

轻松理解HTTP缓存策略

上一篇文章我写了koa-static的源码解析,其中用到了HTTP的缓存策略,给返回的静态文件设置了一些缓存的头,比如Cache-Control之类的。于是我就跟朋友讨论了一下HTTP的缓存策略:

朋友说:“HTTP里面控制缓存的头(header)太多了,啥Cache-ControlETagLast-Modified,一大堆,乱七八糟的,而且之间逻辑关系不强,要掌握基本靠背!”

我有点惊讶:“为什么要去背这个呢?所有的技术都是为了解决问题而存在的,不了解问题而去单纯的学习技术,去,背,去,死记,确实很枯燥,而且效果不好。HTTP缓存策略只是为了解决客户端和服务端信息不对称的问题而存在的,客户端为了加快速度会缓存部分资源,但是下次请求时,客户端不知道这个资源有没有更新,服务端也不知道客户端缓存的是哪个版本,不知道该不该再返回资源,其实就是一个信息同步问题,HTTP缓存策略就是来解决这个问题的。如果我们跳出这种纯粹的技术思维,我们会发现生活中这种信息同步问题也很常见。而我们解决这些问题的思路很多时候都是司空见惯了,如果从这个角度来说,这个问题就很好理解!”

于是我给他讲了一个我小时候租光碟看奥特曼的故事。…

            

什么是SSL卸载?它的工作原理是什么?有什么好处?

什么是SSL卸载?在负载均衡器层面执行SSL。

 

今天我们将讨论一个经常出现的问题,对于那些没有IT背景的人来说,这可能会显得特别陌生:什么是SSL卸载?我们将快速概述一下SSL卸载意味着什么,为什么你想要这样做,以及你是否应该这样做。

 

一般而言,有关SSL/TLS和互联网的工作方式的一个用词不当的说法是,它是一个1:1的连接。个人的计算机直接与网络服务器连接,然后通讯就会直接从一端到达另一端。而实际上,情况要比这复杂得多,有时候两端之间最多会划分成十多段。…

            

常用HTTP状态码解释

超文本传输​​协议的一部分- HTTP / 1.1
RFC 2616 Fielding,et al。

10状态码定义

下面描述了每个状态代码,包括它可以遵循哪种方法以及响应中所需的任何元信息的描述。

10.1信息1xx

此类状态代码表示临时响应,仅包含Status-Line和可选标头,并以空行终止。此类状态代码没有必需的标头。由于HTTP / 1.0没有定义任何1xx状态代码,服务器不得向HTTP / 1.0客户端发送1xx响应,除非在实验条件下。

客户必须准备好在常规响应之前接受一个或多个1xx状态响应,即使客户端不期望100(继续)状态消息。用户代理可以忽略意外的1xx状态响应。

代理必须转发1xx响应,除非代理与其客户端之间的连接已关闭,或者除非代理本身请求生成1xx响应。(例如,如果是

代理在转发请求时添加“Expect:100-continue”字段,然后它不需要转发相应的100(继续)响应。)…