浅谈HTTP/HTML/浏览器

Xixibao
14 min readMar 13, 2021

首先从HTTP来看起,HTTP是一个网络协议,用于从www服务器端传输超文本到本地浏览器传输协议。Https则是HTTP的安全版本,因为他在HTTP下加了SSL层,SSL层把传输的数据加密了,是一个安全的信息传输通道。

除此之外,HTTPs需要ca证书,所以有一定的成本。还有就是端口不同,Http协议端口是80,Https端口是443。
【Http协议的连接是无状态的连接,无状态指每个请求都是独立的,每个请求包含了处理这个请求的完整数据,发送请求不意味着状态的变更。即使在HTTP1.1可以在同一个连接传输多个HTTP请求,如果第一个请求出错了,后面的请求一般还是可以继续处理的。

无状态的HTTP协议也是有缺点的,对于单个请求所有的信息都要放在一起发送到服务端,所以消息结构复杂,HTTP解析也比其他协议复杂。并且,相同的数据在多个请求上会反复传输,比如每个请求都需要传输Host, Authentication,cookies,server等,往往都是完全重复的,降低了效率。】

所以总结一下HTTP与HTTPs 的区别就是:安全,成本高,端口不同

下面来讲讲HTTPs的工作原理

这里先标记几个容易搞混的名词:公钥,私钥,密钥,ssl,客户端,服务器端。 步骤:

1、客户端使用带有https 的url访问web服务器端,与web服务器建立SSL链接。

2、Web服务器收到这个request之后,会把网站证书也就是公钥发给客户端。

3、客户端收到公钥之后,双方就开始协商SSL的安全等级并且客户端制定密钥,并且通过收到的公钥来加密密钥。把密钥发送给服务器端。

4、服务器端收到密钥用自己的私钥解密得到密钥。

5、最后服务器端用这个密钥达到加密客户端与服务器端通信会话的目的。

最后一部分就是HTTP与HTTPs的优缺点:

HTTPS的优点就是对传输数据来说很安全(虽然不是绝对的安全);缺点就是贵。握手的时候消耗时间,页面加载有延迟。HTTPs的缓存不如HTTP高效,会增加数据开销。TODO:有关缓存的内容还不是很清楚,需要深入理解。专门写一篇文章。

提到了HTTP当然就少不了TCP与UDP。他们有什么关系呢?

上面所提到的HTTP等协议都是位于应用层的协议,而TCP等是位于传输层的协议。所以他们两个也负责着不同的功能,比如说位于传输层的协议,考虑更多的就是如何把数据从一台电脑上传输到另一台电脑,他不需要考虑我传输的数据是什么类型,因为这个是应用层需要关心的。应用层关心的是数据用什么类型表达可以被另一台电脑或者服务器所理解,传输层考虑更多的是数据如何被稳定,高效的传播过去。

在知道他们的关系之后就更可以理解概念的内容了。

--

--

Xixibao
Xixibao

No responses yet