04-HTTP相关的各种概念

        TCP/IP

         TCP/IP协议是目前网络世界事实上的标准通信协议,即使我们没有用过也一定听说过它。

         TCP/IP协议实际上是一系列网络通信协议的统称,其中最核心的两个协议是TCP和IP、其他的还有UDP、ICMP、ARP等等,共同构成了一个复杂但又层次的协议栈。这个协议栈有四层,最上层是应用层,最下层是链接层,TCP和IP则在中间:TCP属于传输层,IP属于网际层。

        IP协议是Internet Protocol的缩写,主要目的是解决寻址和路由问题,以及如何在两点之间传送数据包。IP协议使用IP地址的概念来定位互联网上的每一台计算机。现在我们使用的IP协议大多数是v4版,地址是用四个.号分隔数字,例如198.168.0.1,总共有2^32,大约42亿个可以分配的地址。看上去很多,但互联网的快速发展让地址分配管理很快就捉襟见肘了。所以又出现了v6版,使用8组“:”冒号分隔数字作为地址,容量扩大了很多,有2^128个。

        TCP协议是Transmission Control Protocol的缩写,意思是传输控制协议,它位于IP协议之上,基于IP协议提供可靠的、字节流形式的通信,是HTTP得以实现的基础。可靠是保证数据不丢失,字节流是保证数据完整性,所以TCP协议的两端可以如同操作文件一样访问传输的数据,就像是读写在一个密闭的管道里流动的字节。

        DNS

        在 TCP/IP协议中使用IP地址来标识计算机,数字形式的地址对于计算机是方便了,但是对于人类来说却难以记忆和输入。

        于是域名系统(Domain Name System)出现了,用有意义的名字来作为IP地址的等价替代。在DNS中域名又称为主机名,为了更好的标记不同国家或组织的主机,让名字更好记忆,所以设计成了一个有层次的结构。

        域名用.号分隔成多个单词,级别从左到右逐级升高,最右边的被称为顶级域名,例如表示商业公司的com,表示教育机构的edu,表示国家的cn、uk等。

        想要使用 TCP/IP协议来通信仍然要使用IP地址,所以需要把域名做一个转换,映射到它的真实IP,这就是所谓的域名解析。域名解析很复杂,因为互联网上的电脑是在太多了,目前全世界有13组根DNS服务器,下面再有许多的顶级DNS、权威DNS和更下的本地DNS,逐层递归地实现域名查询。

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

        URI/URL 

        有了 TCP/IP和DNS,就可以任意访问网络上的资源了吗?还不行,DNS和IP地址只是标记了互联网上的主机,但主机上有那么多文本、图片、页面,到底要找哪一个呢?

        所以就出现了URI(Uniform Resource Identifier),中文名称是统一资源标识符,使用它就能够唯一地标记互联网上资源。

        URI另一个更常使用的表示形式是URL(Uniform Resource Locator),统一资源定位符,也就是我们俗称的网址,它实际上是URI的一个子集,不过两者几乎相同,差异不是很大,所以通常不会严格区分。

        https://mp.csdn.net/mp_blog/creation/editor

        可以看到URI主要有三个基本的部分构成:

        1.协议名:即访问资源应当使用的协议,在这里是http

        2.主机名:即互联网上主机的标记,可以是域名或IP地址,这里是mp.csdn.net

        3.路径:即资源在主机上的位置,使用“/”分隔多级目录,在这里是/mp_blog/creation/editor

        HTTPS

        HTTPS的全称是HTTP voer SSL/TLS,也就是运行在SSL/TLS协议上的HTTP。注意它的名字,这里是SSL/TLS,而不是TCP/IP,它是一个负责加密通信的安全协议,简历在TCP/IP纸上,所以也是个可靠的传输协议,可以被用作HTTP的下层。

        SSL的全称是Secure Socket Layer,由网景公司发明,发展到3.0时别标准化,改名为TSL,即Transport Layer Security,但由于历史原因还是很多人称之为SSL/TSL,或者直接简称为SSL。其使用了很多密码学最陷阱的研究成果,综合了对称加密、非对称加密、摘要算法、数字签名、数字证书等技术,能够在不安全的环境中为同行的双方创建一个秘密的、安全的传输通道,为HTTP套上了一副坚固的盔甲。

        代理

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

        代理有很多种类,常见的有:

        1.匿名代理:完全隐藏了被代理的机器,外界看到的只是代理服务器;

        2.透明代理:顾名思义,它在传输的过程中是透明开放的,外界既知道代理也知道客户端;

        3.正向代理:靠近客户端,代表客户端向服务器发送请求;

        4.反向代理:靠近服务器端,代表服务器响应客户端的请求;

        CDN实际上也是一种代理,它代替源站服务器响应客户端的请求,通常扮演着透明代理和反向代理的角色。

        由于代理在传输过程中插入了一个中间层,所以可以在这个环节做很多有意思的事情,比如:

        1.负载均衡:把访问请求均匀分散到多台机器,实现访问集群化;

        2.内容缓存:暂存上下行的数据,减轻后端的压力;

        3.安全防护:隐匿IP,使用WAF等工具抵御网络攻击,保护代理的机器;

        4.数据处理:提供压缩、加密等额外功能。

        关于HTTP的代理还有一个特殊的代理协议(proxy protocol),它由知名的代理软件HAProxy制定,但并不是RFC标准。

        小结:

        1.TCP/IP是网络世界最常用的协议,HTTP通常运行在TCP/IP提供的可靠传输基础上;

        2.DNS域名是IP地址的等价替代,需要用域名解析实现到IP地址的映射;

        3.URI是用来标记互联网上资源的一个名字,由协议名+主机名+路径构成,俗称URL;

        4.HTTPS相当于HTTP+SSL/TLS+TCP/IP,为HTTP套了一个安全的外壳;

        5.代理是HTTP传输过程中的中转站,可以实现缓存加速、负载均衡等功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值