已阅读
浅析香港CDN加速HTTP协议的特点以及优缺点
-
1.前言:
-
目前互联网上绝大部分的资源都是用Http协议传输,浏览器是HTTP协议里的请求方,即User Agent;服务器是HTTP协议里的应答方,常用的有Apache和Nginx;CDN位于浏览器和服务器之间,主要起到缓存加速的作用;爬虫是另一类的Use Agent,是自动访问网络资源的程序......等等。最近浏览了一些HTTP协议相关的资料所以想说下HTTP协议的特点以及优缺点。
-
-
2.HTTP特点:
-
HTTP协议是一个"灵活可扩展"的传输协议:个人的理解就是HTTP协议有请求方法、版本号、状态码、头字段等特性。而body也不再限于文本形式的TXT或HTML,而是能够传输图片、音频视频等任意数据,这些都是源于它的"灵活可扩展"的特点。
-
HTTP协议是一个"可靠"的传输协议:因为HTTP协议是基于TCP/IP的,而TCP本身是一个“可靠”的传输协议,所以HTTP自然也就继承了这个特性,能够在请求方和答应发之间“可靠”的传输数据。其实HTTP也就是对传输的数据进行了一层包装,加上一个头,然后调用Socket API,通过TCP/IP协议发送和接收。
-
HTTP协议是一个应用层的协议:个人理解HTTP、FTP(只能传输文件)、SMTP(只能发送邮件)、SSH(只能远程登入)......这些协议都算是应用层的协议,但是HTTP协议可以携带任意头字段和实体数据的报文结构,以及连接控制、缓存代理等方便易用的特性,显得就特别有优势。
-
HTTP协议使用的是请求 - 应答通信模式:在这个比较好理解就像是写代码时的函数调用,只要填好请求头里的字段,“调用”后就会收到答复。
-
HTTP协议是无状态的:“状态”其实就是客户端或者服务器里保存的一些数据或者标志,记录了通信过程中的一些变化信息。这里说下TCP协议是有状态的,一开始处于CLOSED状态,连接成功后是ESTABLISHED状态,断开连接后是FIN-WAIT状态,最后又是CLOSED状态。回头看HTP,客户端和服务器永远处于一种“无知”的状态,就是每次的请求和答复都是独立的,没有任何联系。就是协议不要求客户端或服务器记录请求的相关信息。
-
特别说明:以前HTTP协议还有一个“无连接”的特点,指的是协议不保持连接状态,每次请求应答后都会关闭连接,这就和UDP几乎一模一样了。但是很影响性能,在HTTP/1.1里就改成了总是默认启动keepalive长连接机制,所以现在的HTTP已经不再是“无连接”的了
-
-
3.HTTP优缺点:
-
简单、灵活和易于扩展
-
拥有成熟的软硬件环境,应用非常广泛,是互联网的基础设施
-
HTTP是无状态的,可以轻松实现集群化,扩展性能,可以利用Cookie技术实现“有状态
-
明文传输,数据完全肉眼可见,能够方便地研究和分析,但也容易被窃听
-
HTTP是不安全的,无法验证通信双方的身份,也不能判断报文是否被修改(个人理解就是你的某个请求到服务器,服务器没有办法完全校验你和你的数据是否被修改。)
-