最后更新:2022-06-29 01:31:48 手机定位技术交流文章
超文本传输协议(Hyper Text Transfer Protocol一个简单的请求响应协议(HTTP)是基于TCP协议的应用程序层传输协议,它指定客户端可以向服务器发送哪些消息和它接收哪些响应。
HTTP是一个无状态的协议,而HTTP协议本身并不处理发送的请求和响应的通信状态。目的在于维护HTTP协议的简单性,因此能够快速处理大量交易,提高效率。
HTTP请求体是请求数据时向服务器发送的数据,毕竟向服务器获取数据,首先表示您想要什么,以及您想要什么!

HTTP请求主体包括: 请求行 、 请求头和请求主体.
GET请求访问由URI(统一资源标识符)标识的资源可以通过URL发送到服务器。
POST主要函数与GET方法相似,但一般建议使用 POST方法。
PUT传输文件,包含文档在消息体中的内容,存储在相应的URI位置。
HEAD: 获取消息的第一个部分,类似于GET方法,但不会返回消息主体,通常用于验证URI是否有效。
DELETE删除文件,与PUT方法相反,删除文件在相应的URI位置。
OPTIONS查询由相应的URI支持的HTTP方法。
Post 请求示例
Get 请求示例
没有请求主体的请求
GET和 POST是两个常用的HTTP方法,两者之间的区别主要包括以下五个方面:
功能上讲,GET通常用于从服务器获取资源, POST通常用于在服务器上更新资源;
从REST服务的角度来看,GET是等效的,即读取相同的资源并总是得到相同的数据,而 POST不是等效的,因为请求每次更改的资源并不相同;
从请求参数格式,GET请求数据将附上URL,即将收到的请求数据将放在HTTP消息的请求标题中,以?分 URL 和传输数据,参数之间以 & 相连;而 POST 请求会把提交的数据则放置在是 HTTP 请求报文的请求体中。
从安全角度看, POST比GET更安全,因为GET请求提交的数据在URL上显而易见, POST请求参数被装入请求体,这相对安全。
从请求的大小看,GET请求的长度由浏览器或服务器限制到URL的长度,允许发送较少的数据,而 POST请求的长度并不限制到大小。
HTTP的响应消息是服务器返回的数据,首先必须有一个请求体,然后是一个响应消息。

HTTP响应消息由:状态行,响应头,响应机构组成。
1xx(临时响应):服务器收到要求请求者继续执行操作的请求时的信息;
2xx ( 成功 ) : 成功 地 收到 和 处理 了 该 操作 ;
3xx ( 重新 定位 ) : 需要 进行 进一步 的 行动, 以 完成 这项 请求 ;
4xx(客户端错误):请求包含语法错误或无法完成请求;
5xx(服务器错误):服务器在处理请求时发生错误;
响应示例
当我们输入网页浏览器的地址栏时:
www.baidu.com然后回到车上,发生了什么事?
通过浏览器缓存、系统缓存、主机文件、路由器缓存和递归搜索根域名服务器(DNS分析)搜索一个IP地址的过程。
建立一个TCP/IP连接(三个握手特定过程)。
HTTP请求由浏览器发送。
HTTP请求通过路由器继电器,通过服务器的防火墙到达服务器。
服务器处理HTTP请求并返回HTML文件。
浏览器分析HTML文件,并在浏览器末端显示它。
服务器关闭TCP连接(四个实时的特定进程)。
Https
HTTP协议运行在TCP上,并且是明确传输的,因此客户端和服务器不能互相验证身份。 HTTP通过SSL(Secure Socket Layer,安全插座层)或TLS(Transport Layer Security,安全层传输协议)用于加密HTTP通信内容的联合使用。 属于通信加密,即通过通信线进行加密。

HTTPS使用共享密钥加密(对称)和开放密钥加密(非对称)的组合。如果可以保证密钥,则可以考虑使用开放密钥加密来进行通信。但公共密钥加密比共享密钥加密慢。
HTTP 的不足
窃听威胁:通讯使用普通文本(不加密),内容可能被盗窃;
风险暴露:通讯者的身份未被核实,因此有可能发生伪造;
变形风险:不能证明报告的完整性,因此可能报告有变形;
两者区别
不同的端口:HTTP和HTTP使用不同的连接方法和不同的端口,前者80和后者443;
资源消耗:HTTP通信比HTTP通信消耗更多的CPU和内存资源,因为加密减少;
成本:HTTP通信需要证书,通常是从认证机构购买的;

1.客户端启动HTTPS请求
用户在浏览器中输入 https URL,然后连接到服务器的443端口。
【2】服务端的配置
使用HTTPS协议的服务器必须有一套数字证书,这些证书可以由自己制作或应用于组织。不同的是,由自己发出的证书需要客户端验证继续访问,而由一个可靠的公司应用的证书不会出现一个提示页。
这个证书实际上是两个公共和私人密钥,想象一个钥匙和锁,只是你是世界上唯一拥有这个钥匙的人,你可以把锁交给别人,其他人可以用这个锁锁住重要的东西.然后发给你,因为只有你才有钥匙,所以只有你才能看到锁上的东西。
【3】传送证书
该证书实际上是公开的钥匙,但它包含很多信息,如证书的发行机构、有效期等。
客户分析证书
这由客户端的TLS进行,它首先验证发布机构、有效期等公钥的有效性。 如果发现例外,将显示一个警告框,显示证书有问题。
如果 certificate 没有问题, 生成一个随机值,然后用 certificate 加密随机值, 如上所述, 锁定随机值以锁定, 这样除非有一个钥匙, 锁定的内容就不会可见.
【5】传送加密信息
证书加密的随机值的目的是使服务器获取此随机值,然后通过此随机值加密和解密客户端与服务器之间的通信。
6.服务端信息的解密
服务结束后,用私人密钥解密,收到向客户传递的随机值(私钥),然后内容通过这个值进行对称加密,所谓对称加密就是,通过某种算法将信息和私钥混合起来,这样除非知道私钥,不然无法获取内容,正如客户和服务部门知道这个私人钥匙一样,所以只要加密算法足够强,私钥够复杂,数据就够安全。
加密信息的传输
服务部分的信息以私钥加密,可以恢复到客户端。
8.客户解密信息
客户端通过先前生成的私钥解密服务部分发送信息,从而获得解密内容的理解,整个过程甚至在第三方倾听数据的情况下也无法解密信息。
HTTPS 的缺点
HTTPS协议多次握手,导致页面加载时间延长近50%;
HTTPS连接缓存比HTTP低效率,增加数据成本和电力消耗;
SSL包含消耗CPU资源的安全算法,而服务器资源则消耗更多。
本文由 在线网速测试 整理编辑,转载请注明出处。