带着数据去旅行一次完整的HTTP请求在讲HTTPS之前,我们有必要了解一下HTTP协议 。先看一个完整的HTTP请求:
文章插图
上面是我用Wireshark工具所抓到的一次完整HTTP请求的样子 。
- 首先可以看到的是三个TCP协议的数据包,也就是我们常说的TCP三次握手,在这之后,两台电脑之间的连接就建立起来了 。
- 继续向下就可以看到HTTP请求了,Request和Response一来一回,很好辨认 。大家还可以注意到在每个HTTP数据包之后还跟了一个TCP的包,这是TCP协议的确认,表示告诉发送者:"你刚才的报文我已经收到了" 。
页面底部显示了一个原始的HTTP GET请求报文的样子,为什么请前面会出现乱码呢?其实前面的乱码就是TCP/IP协议 。不同于HTTP协议可以用字符编码,TCP/IP的传递需要极致压缩数据量,每一个数据位就表示了一种特定的意思,需要使用TCP/IP的规则去解析(就像我们在软件上面页面所看到的解析结果),而不能使用字符编码来阅读 。
文章插图
虽然OSI七层模型有更细分的设计,但是他也无法撼动TCP/IP已经实行多年的统治地位,所以OSI模型现在更多是一种建议和标准 。在TCP/IP模型中,我们的HTTP协议,TCP协议,IP协议分别位于应用层,传输层和互联网层 。当我们发起一次HTTP请求,浏览器会按照HTTP协议的要求,拼装出HTTP的数据,再调用下层TCP协议提供的API将HTTP数据封装到TCP协议中,再往下针对IP协议再一次封装,最后到达物理网络层,数据被发送出去 。目标主机收到数据以后,反过来将包装好的数据一层一层剥开,最终得到我们要传递的信息,然后再一次将要返回的数据经过层层协议的打包返回到源主机 。
带着保险箱去旅行从上面的基础知识我们不难发现,HTTP协议是非常简单且高效 。
- HTTP直接运行在TCP协议之上,依靠TCP来实现自己的稳定性 。
- HTTP使用明文传输,数据可读性和可扩展性都非常好 。
------在这样的历史浪潮中,HTTPs应运而生 。
HTTPs与HTTP的区别就在这个s上,它代表的是"TLS",既安全传输层协议 。TLS也是运行在TCP之上的应用层协议,但是与一般传输数据的协议不同,TLS所关心的,只有安全 。我们可以认为TLS就是一个运行在TCP上的保险箱,现在我们将需要保护的数据先装入这个保险箱,再经过TCP发送出去,就能实现我们对于安全的需求 。我们将HTTP over TCP,变成了HTTP over TLS over TCP 。
秒懂生活扩展阅读
- 科比的身体素质数值
- 检讨书怎么写
- 怎么在浏览器上打开我的收藏
- 关于书益的成语有哪些
- 重生成了一只鸡的小说有哪些
- 学生课桌椅的标准高度是多少
- 上海最新潮的快闪店大搜罗 一不小心就错过了
- 微信里怎么建群聊
- 图 国内最适合学生的十大旅游胜地推荐
- 燕麦和什么相克