阅读须知: 以下所有内容均来源于菜鸟教程,详细内容请点击这里查看
HTTP 协议定义
- HTTP 协议一般指 HTTP(超文本传输协议)基于 TCP/IP 通信协议来传递数据。
- 超文本传输协议定义(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为广泛的一种网络传输协议,所有的 WWW 文件都必须遵守这个标准
HTTP 作用
- 为 Web 浏览器与 Web 服务器之间的通信而设计的
HTTP 协议与HTTPS 协议对比
HTTP 协议 | HTTPS 协议 |
---|---|
从万维网服务器传输超文本到本地浏览器的传送协议。 | 是一种通过计算机网络进行安全通信的传输协议。 |
基于 TCP/IP 通信协议来传递数据 | 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包 |
用于从万维网服务器传输超文本到本地浏览器的传送协议。 | 是提供对网站服务器的身份认证,保护交换资料的隐私与完整性 |
URL 是由 http:// 起始与默认使用端口 80 | URL 是由 https:// 起始与默认使用端口443。 |
数据都是未加密的,安全性较差不适合传输一些敏感信息,比如:信用卡号、密码等支付信息 | 数据传输过程是加密的,安全性较好。 |
页面响应速度快,只与服务器交换 3 个包 | 与服务器交换共 12 个包 |
耗费服务器资源更少 | 更耗费服务器资源 |
HTTP 工作原理
- 客户端<=>服务端
- 浏览器通过 URL向WEB 服务器发送请求
- Web 服务器根据接收到的请求后,向客户端发送响应信息
HTTP 三点注意事项
- HTTP 是无连接,限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后就断开连接,可以节省传输时间
- HTTP 是媒体独立的,任何类型的数据都可以通过HTTP发送
- HTTP 是无状态,协议对于事务处理没有记忆能力,后续处理需要前面的信息,则它必须重传,
HTTPS 作用
- 在不安全的网络上创建一个安全信道
- 使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的防护。
- 基于预先安装在操作系统中的证书颁发机构(CA)
HTTPS 能被信任的情况
- 浏览器正确地实现了 HTTPS 且操作系统中安装了正确且受信任的证书颁发机构;
- 证书颁发机构仅信任合法的网站;
- 被访问的网站提供了一个有效的证书,也就是说它是一个由操作系统信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告);
- 该证书正确地验证了被访问的网站
- 此协议的加密层(SSL/TLS)能够有效地提供认证和高强度的加密
TCP 三次握手
HTTPS 的工作原理
1、客户端发起 HTTPS 请求
输入一个 https 网址,然后连接到 server 的 443 端口
2、服务端的配置
数字证书,公钥和私钥
3、传送证书
证书是公钥,包含了很多信息,如证书的颁发机构,过期时间等等。
4、客户端解析证书
- TLS解析,验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。
- 如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密
5、传送加密信息
这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。
6、服务端解密信息
服务端用私钥解密后,得到了客户端传过来的随机值(对称秘钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。
7、传输加密后的信息
这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。
8、客户端解密信息
客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。
HTTP 消息结构
客户端请求消息
- 请求行(request line)、请求头部(header)、空行和请求数据四个部分组成
服务器响应消息
- HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文
HTTP 请求方法
- 根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
GET 方法
- 用法示例
注意:查询字符串(名称/值对)是在 GET 请求的 URL 中发送的
/text/from.php?name=value&name1=value1
POST 方法
- 用法示例
注意:查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的
POST /test/demo_form.php HTTP/1.1
Host: runoob.com
name1=value1&name2=value2
HTTP 常用方法:GET 与 POST对比
GET | POST | |
---|---|---|
作用 | 从指定的资源请求数据 | 向指定的资源提交要被处理的数据。 |
可见性 | 提交参数一般显示在 URL 上 | 通过表单提交不会显示在 URL 上 |
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
书签 | 可收藏为书签 | 不可收藏为书签 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中 |
对数据长度的限制 | 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制。也允许二进制数据。 |
安全性 | 在发送密码或其他敏感信息时绝不要使用 GET ! | POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
HTTP 状态码
常见的 HTTP 状态码
- 200 - 请求成功
- 301 - 资源(网页等)被永久转移到其它URL
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
HTTP 内容类型
- Content-Type(内容类型),一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器依次什么形式、什么编码读取这个文件,这就是经常看的到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。
Content-Type标头告诉客户端实际返回的内容的内容类型。
常见的媒体格式类型 | 应用程序开头的媒体格式类型
-------- | -----
text/html : HTML格式|application/xhtml+xml :XHTML格式
text/plain :纯文本格式|application/xml: XML数据格式
text/xml : XML格式|application/atom+xml :Atom XML聚合格式
image/gif :gif图片格式|application/json: JSON数据格式
image/jpeg :jpg图片格式|申请/pdf:pdf格式
image/png:png图片格式|application/msword : Word文档格式
" |application/msword : Word文档格式
"|application/octet-stream :二进制流数据(如常见的文件下载)
HTTP2的定义
- HTTP/2是一种网络协议,是HTTP/1.1的升级版,由IETF在2015年发布。HTTP/2旨在提高Web性能,减少延迟,增加安全性,使Web应用更加快速、高效和可靠。
HTTP2的 特点
-
多路复用:HTTP/2 允许同时发送多个请求和响应,而不是像 HTTP/1.1 一样只能一个一个地处理。这样可以减少延迟,提高效率,提高网络吞吐量。
-
二进制传输:HTTP/2 使用二进制协议,与 HTTP/1.1 使用的文本协议不同。二进制协议可以更快地解析,更有效地传输数据,减少了传输过程中的开销和延迟。
-
头部压缩:HTTP/2 使用 HPACK 算法对 HTTP 头部进行压缩,减少了头部传输的数据量,从而减少了网络延迟。
-
服务器推送:HTTP/2 支持服务器推送,允许服务器在客户端请求之前推送资源,以提高性能。
-
改进的安全性:HTTP/2 默认使用 TLS(Transport Layer Security)加密传输数据,提高了安全性。文章来源:https://www.toymoban.com/news/detail-780470.html
-
兼容 HTTP/1.1:HTTP/2 可以与 HTTP/1.1 共存,服务器可以同时支持 HTTP/1.1 和 HTTP/2。如果客户端不支持 HTTP/2,服务器可以回退到 HTTP/1.1。文章来源地址https://www.toymoban.com/news/detail-780470.html
到了这里,关于HTTP 协议与HTTP S协议对比与详细内容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!