HTTP概念性总结

  工作中几乎每天都在和HTTP协议打交道,但是感觉除了对状态码、请求头、请求体的使用外,对理论及底层协议的了解知之甚少,所有想总结一下HTTP协议的一些概念。

HTTP : Hyper Text Transfer Protocal 超文本传输协议

首先什么是文本?
文本最初指报文、文字,如今发展为文字、图片、音频、视频、压缩包等;

那么什么是超文本?
即文字、图片、音频、视频对混合体,更重要对特点是包含了超链接;最典型的超文本就是HTML,可以以标签形式加载各种超文本资源

所以HTTP就是:在两点间传输文字、图片、音频、视频等超文本数据的约定和规范。

HTTP两个特点:
1、双向协议
2、允许中转/接力(目的:优化传输过程)

CDN
优化对途径之一,CDN(Content Delivery Network 内容分发网络)
应用了HTTP协议里的缓存和代理技术,代替源站响应客户端的请求。(缓存源站的数据)

TCP/IP
HTTP协议运行在TCP/IP协议之上
为什么这么说?
因为HTTP(超文本传输协议)中的传输就是依赖于TCP–传输控制协议;
而TCP位于IP之上,是基于IP协议提供可靠的(保证数据不丢失)、字节流(保证数据完整)形式的通信

TCP/IP网络分层模型(四层)
应用层
传输层(TCP)
网际层(IP)
链路层

OSI网络分层模型(七层)–开放式系统互联通信参考模型
第一层:物理层,网络的物理形式,例如电缆、光纤、网卡、集线器等等;
第二层:数据链路层,它基本相当于 TCP/IP 的链接层;
第三层:网络层,相当于 TCP/IP 里的网际层;
第四层:传输层,相当于 TCP/IP 里的传输层;
第五层:会话层,维护网络中的连接状态,即保持会话和同步;
第六层:表示层,把数据转换为合适、可理解的语法和语义;
第七层:应用层,面向具体的应用传输数据。

两个模型的关系(不禁想起大二计算机网络课程死记硬背的日子)

URI
统一资源标识符,常见的URL统一资源定位符是它的子集
http://nginx.org/en/download.html为例

URI的三部分包括:
1、协议名,指访问资源应当使用的协议,http;
2、主机名,指互联网上主机的标记,可以是域名或IP地址,nginx.org;
3、路径,资源在主机上的位置,这里是/en/download.html

HTTPS
HTTP over SSL/TLS
SSL: Secure Socket Layer,后改名为TLS: Transport Layer Security
能够在不安全的环境中为通信的双方创建出一个秘密的、安全的传输通道,实现了加密传输

最后附上罗剑锋老师–透视HTTP协议上分享的思维导图: