| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 04-HTTP相关的各种概念 -> 正文阅读 |
|
[网络协议]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传输过程中的中转站,可以实现缓存加速、负载均衡等功能。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 17:21:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |