HTTP世界全览(下):与HTTP相关的各种协议

与HTTP相关的各种协议在下面图中都列出来了,现在就根据每一种协议进行详细学习。

HTTP世界全览(下):与HTTP相关的各种协议

 

 

 一、TCP/IP

TCP/IP协议是一系列网络通信协议的统称,其中最核心的是TCP和IP,其他还有UDP、ICMP等等,共同构成了一个复杂但是有序的协议栈 。

这个协议栈有四层,最上层是应用层,最下面是链接层,TCP和IP则处于中间。TCP属于传输层,IP属于网际层。

IP:IP协议主要解决寻址和路由问题,以及如何在两点之间传送包。IP协议使用IP地址来定位每一台计算机,可以对比一下现实生活中的电话系统,手机相当于互联网的计算机,要想打电话就必须要接入电话网,由通信公司分配一个号码,这个号码就对应IP地址 。

TCP:TCP协议意思是传输控制协议,它在IP之上,基于IP地址提供可靠的、字节流形式的通信,是HTTP协议得以实现的基础。

HTTP是一个传输协议,因此对于寻址、路由、数据完整性踏实完全不关心的,它只需要完成自己数据传输的目标就行,因此HTTP就运行于IP和TCP之上。

二、DNS  域名系统

在TCP/IP协议中使用IP地址来标识计算机,数字形式的IP对于计算机来说十分的好处理,但是 对于人类来说就十分的难记了,这时就出现了域名DNS,以及其简化的形式代替了I地址,进而达到访问计算机的目的。其实这里的代替并不是十分的准确,应该说是映射。

在DNS中,域名又被称为主机名(Host),为了更好的标记不同的国家和机构,也为了更好的标记,所以被设计成了一个有层次的结构。

域名用“.”分隔成多个单词,级别从左到右逐级升高,最右边的被称为“顶级域名”。对于顶级域名,可能你随口就能说出几个,例如表示商业公司的“com”、表示教育机构的“edu”等等。

但是想要使用TCP/IP协议,还是需要使用IP地址,这里就需要将域名进行一个转化,映射到真实的IP,这样一来就被称为域名解析。
这个概念也是用打电话来模拟,比如说我要给小明打电话,我记不住他的号码,这时我就需要一条条的翻号码记录,最后找到小明的名字,然后就找到对应的 手机号码。这个过程中,小明就相当于域名,手机号码对应IP地址,翻号码记录这个过程成为域名解析。

HTTP 协议中并没有明确要求必须使用 DNS,但实际上为了方便访问互联网上的 Web 服务器,通常都会使用 DNS 来定位或标记主机名,间接地把 DNS 与 HTTP 绑在了一起。 

三、URI/URL

URI:统一资源标识符。使用它就能够唯一地标记互联网上资源。

URL:统一资源定位符。URL是URI的另一种表现形式,它实际上是URI的一个子集,但是二者基本是相同的,所以一般不做强制区分。

以Nginx网址为例:

http://nginx.org/en/download.html 

这里Nginx网址就是一个完整的URI,URI由三部分完成:

1. 协议名:http

2. 主机名:nginx.org

3. 路径:资源在主机上的位置,/en/download.html 

继续用打电话来做例子,给小明打电话让他把做好的宣传文案快递送过来。这里就完成了一次URL资源访问。快递是数据传输的方式,和HTTP对应,所以是协议名;小明就是主机名;宣传文案就是路径。

 

四、HTTPS

在TCP/IP、DNS和URI的加持下,HTTP终于可以顺利访问各个页面了,但是这也带来了安全问题,还是以和小明打电话为准。

如果聊天偷听了,那么在我等快递期间,对方将快递提前拦截下来并将文案发布出去,这样就造成了网络安全威胁。因此这时就需要安全性能足够强的HTTP出现,解决这一问题,还是以和小明打电话为准。

我:小明,我们通过火星文通话吧

小明:好啊

我:巴拉巴拉巴拉巴拉

小明:咕嘟咕嘟咕嘟咕嘟

这样一来,即使通话被监听也没关系,因为我们说的话对方并不能听懂,HTTPS 就相当于这个比喻中的“火星文”,它的全称是“HTTP over SSL/TLS”,也就是运行在 SSL/TLS 协议上的 HTTP。

注意它的名字,这里是 SSL/TLS,而不是 TCP/IP,它是一个负责加密通信的安全协议,建立在 TCP/IP 之上,所以也是个可靠的传输协议,可以被用作 HTTP 的下层。

SSL 使用了许多密码学最先进的研究成果,综合了对称加密、非对称加密、摘要算法、数字签名、数字证书等技术,能够在不安全的环境中为通信的双方创建出一个秘密的、安全的传
输通道,为 HTTP 套上一副坚固的盔甲。

五、代理

代理(Proxy)是 HTTP 协议中请求方和应答方中间的一个环节,作为“中转站”,既可以转发客户端的请求,也可以转发服务器的应答。

代理有很多的种类,常见的有:
1. 匿名代理:完全“隐匿”了被代理的机器,外界看到的只是代理服务器;
2. 透明代理:顾名思义,它在传输过程中是“透明开放”的,外界既知道代理,也知道客
户端;
3. 正向代理:靠近客户端,代表客户端向服务器发送请求;
4. 反向代理:靠近服务器端,代表服务器响应客户端的请求;
上一讲提到的 cdn,实际上就是一种代理,它代替源站服务器响应客户端的请求,通常扮演着透明代理和反向代理的角色。

由于代理在传输过程中插入了一个“中间层”,所以可以在这个环节做很多有意思的事情,
比如:
1. 负载均衡:把访问请求均匀分散到多台机器,实现访问集群化;
2. 内容缓存:暂存上下行的数据,减轻后端的压力;
3. 安全防护:隐匿 IP, 使用 WAF 等工具抵御网络攻击,保护被代理的机器;
4. 数据处理:提供压缩、加密等额外的功能。

六、课后习题

1. DNS 与 URI 有什么关系?

答:DNS 是将域名解析出真实IP地址的系统URI 是统一资源标识符,标定了客户端需要访问的资源所处的位置,如果URI中的主机名使用域名,则需要使用DNS来讲域名解析为IP。

2. 在讲代理时我特意没有举例说明,你能够用引入一个“小强”的角色,通过打电话来比喻一下吗?

答:我们为了更安全的和小明交流,选择通过和小强交流,让其再告诉小明,这是匿名代理,也是正向代理,而如果让小明知道我们的存在则不是匿名代理,是透明代理;小明由于某些原因不能直接响应我们,找了小强来代为响应我们,这是反向代理。

至此,结束。

原文链接:https://www.cnblogs.com/yeyuting/p/14422565.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/21000

(0)
上一篇 2024年4月20日
下一篇 2024年4月20日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml