最后更新:2022-02-19 02:26:33 手机定位技术交流文章
超文本传输协议(HTTP协议)被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:超文本传输安全协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTP(Hyper Text Transfer Protocol)全称为超文本1传输协议,是一个简单的请求——响应协议:
HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer),超文本传输安全协议:
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
1、https协议需要到CA(Certificate Authority,数字证书认证机构)申请证书,一般免费证书较少,因而需要一定费用。
2、http是明文传输,数据未加密,安全性差;https则是具有安全性的ssl加密传输协议,安全性好。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http页面响应速度比https快,因为http使用TCP三次握手建立连接,客户端和服务器需要交换 3 个包,而https除了TCP的三个包,还要加上ssl握手需要的 9 个包,所以一共是 12 个包。
5、https=SSL/TLS+http,所以,https比http要更耗费服务器资源。
(1)客户端与服务器建立连接。该连接是通过TCP 来完成的,一般端口号是80。
(2)客户向服务器提出请求。请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。
(3)服务器接受请求,并根据请求返回相应的文件作为应答。格式:一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。
(4)客户与服务器关闭连接。
(1)客户端向服务端443端口发起HTTPS请求。该请求中携带了客户端支持的加密算法和哈希算法;
(2)服务端收到请求,选择浏览器支持的加密算法和哈希算法。
(3)服务端将算法和数字证书发送给客户端。该证书包含了用于认证目的的服务器标识,可以是向某个可靠机构申请的,也可以是自制的;
(4)客户端对服务器端的证书进行验证,这一部分是浏览器内置的TLS完成的,具体步骤如下:
(5)客户端将加密的随机密码串传送给服务端。
(6)服务器用自己的私钥解密得到随机密码串(私钥),然后通过该随机密码串把网页内容进行
对称加密
,并传输给浏览器。
(7)浏览器用之前生成的私钥解密算法获取网页内容。
(1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性。
(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
(1)相同网络环境下,HTTPS协议会使页面的加载时间延长近 50%,增加 10%到 20%的耗电。此外,HTTPS协议还会影响缓存,增加数据开销和功耗。
(2)HTTPS协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。
(3)SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。
(4)SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
(5)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
在HTTP请求和响应的过程中传递的数据块就叫HTTP消息,包括要传送的数据和一些附加信息,并且要遵守规定好的格式。
请求消息是指客户端向服务器端发送请求时所携带的数据块。
请求方式用来规定客户端与服务器端联系的类型。
HTTP协议中常用的请求方式主要是GET和POST两种。
<form>标签的method属性设置为post,那么就会以POST方式发送请求。响应消息是指服务器端向客户端进行响应请求时所携带的数据块。
在响应消息中,对于客户端的每一次请求,服务器端都要给予响应,在响应的时候我们可以通过状态码告诉客户端此次请求是成功还是失败。
状态代码由3位数字组成,表示请求是否被理解或被满足。HTTP响应状态码的第一个数字定义了响应的类别,后面两位没有具体的分类,第1位数字有5种可能的取值:
1**:请求已接收,需要继续处理。
2**:请求已成功被服务器接收、理解并接受。
3**:为完成请求,客户端需进一步细化请求。
4**:客户端的请求有错误。
5**:服务器端出现错误。
HTTP协议常见的状态码
| 状态码 | 说明 |
|---|---|
| 200 | 表示服务器成功处理了客户端的请求 |
| 302 | 表示请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求 |
| 404 | 表示服务器找不到请求的资源 |
| 400 | 表示客户端请求有语法错误 |
| 500 | 表示服务器发生错误,无法处理客户端的请求 |
超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。 ↩︎
本文由 在线网速测试 整理编辑,转载请注明出处。