HTTP协议学习---(一)概念篇

一 基本概念

1 不同版本概述
HTTP 协议始于三十年前蒂姆·伯纳斯 - 李的一篇论文;
HTTP/0.9 是个简单的文本协议,只能获取文本资源;
HTTP/1.0 确立了大部分现在使用的技术,但它不是正式标准;
HTTP/1.1 是目前互联网上使用最广泛的协议,功能也非常完善(文本传输,即使文件等 上传本身是二进制,但一些分隔符依然是文本);
HTTP/2 基于 Google 的 SPDY 协议,注重性能改善,但还未普及;
HTTP/3 基于 Google 的 QUIC 协议,是将来的发展方向。

2 超文本传输协议
协议指规范,传输指至少两端,中间只要遵循http协议并且不阻断数据传输就可以灵活编排,例如数据压缩编码转换等,但它不关心寻址、路由、数据完整性等传输细节,而要求这些工作都由下层来处理。超文本指的不是杂乱无序的二进制包,而是完整的有意义的数据。
HTTP 是一个用在计算机世界里的协议,它确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。
HTTP 专门用来在两点之间传输数据,不能用于广播、寻址或路由。
HTTP 传输的是文字、图片、音频、视频等超文本数据。
HTTP 是构建互联网的重要基础技术,它没有实体,依赖许多其他的技术来实现,但同时许多技术也都依赖于它。

3 与http相关的各种协议
TCP/IP
TCP/IP是一系列网络协议的统称,其中最核心的是TCP以及IP,其他的还有UDP,ICMP,ARP等。IP协议用来解决寻址和路由的问题。TCP协议用来提供可靠的字节流形式的通信。
HTTPS
相当于HTTP+SSL/TSL+TCP/IP,SSL主要就是对内容加密

4 代理
代理有很多的种类,常见的有:
匿名代理:完全“隐匿”了被代理的机器,外界看到的只是代理服务器;
透明代理:顾名思义,它在传输过程中是“透明开放”的,外界既知道代理,也知道客户端;
正向代理:靠近客户端,代表客户端向服务器发送请求;
反向代理:靠近服务器端,代表服务器响应客户端的请求;

5 协议分层
TCP/IP四层
链接层 网际层 传输层 应用层
在这里插入图片描述

OSI七层
第一层:物理层,网络的物理形式,例如电缆、光纤、网卡、集线器等等;
第二层:数据链路层,它基本相当于 TCP/IP 的链接层;
第三层:网络层,相当于 TCP/IP 里的网际层;
第四层:传输层,相当于 TCP/IP 里的传输层;
第五层:会话层,维护网络中的连接状态,即保持会话和同步;
第六层:表示层,把数据转换为合适、可理解的语法和语义;
第七层:应用层,面向具体的应用传输数据。
在这里插入图片描述

6 补充
二层转发:设备工作在链路层,帧在经过交换机设备时,检查帧的头部信息,拿到目标mac地址,进行本地转发和广播
三层路由:设备工作在ip层,报文经过有路由功能的设备时,设备分析报文中的头部信息,拿到ip地址,根据网段范围,进行本地转发或选择下一个网关
DNS/CDN都在应用层
DNS都是基于UDP协议

7 www.baidu.com域名寻址过程 com顶级域名 baidu二级域名 www主机名 浏览器DNS缓存->操作系统缓存->Hosts文件->非权威域名服务器->根域名服务器->顶级域名服务器->权威域名服务器。 首先查找本地DNS缓存(由操作系统维护),没有再找本地host文件,还没有则根据根域名服务器找到com对应的顶级域名服务器,根据顶级域名服务器找到baidu.com的权威域名服务器,根据权威域名服务器可以找到www.baidu.com对应的主机名服务器然后访问。 大部分运营商或者大型企业都有自己维护的域名服务器,因此并不是所有的访问都要经过根域名服务器。在达到运营商DNS解析成功之后就无需进行后续的查找了。