HTTP/HTTPS 简介
HTTP
HTTP - Hyper Text Transfer Protocol 超文本传输协议
HTTP是用于万维网(WWW - World Wide Web)服务器传输超文本到本地浏览器的传输协议
HTTP基于TCP/IP通信协议来传输数据
HTTPS
HTTPS - Hyper Text Transfer Protocol Secure 超文本安全传输协议
HTTPS是一种通过计算机网络来进行安全通信的传输协议
HTTPS经由HTTP进行通信,但是由SSL/TLS来加密数据包

HTTP工作原理
HTTP协议工作于 客户端-服务端 架构上。
浏览器作为HTTP客户端通过URL向WEB服务器即HTTP服务端发送所有请求,WEB服务器根据接收到的请求后,向客户端发送响应信息。
WEB服务器:Apache服务器,IIS服务器(Internet Information Services)...
HTTP三点注意事项
· HTTP是无连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户端的请求,并受到客户端的应答后,即断开连接,采用这种方式可以节省传输时间
· HTTP是无状态:无状态是指协议对于事物处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,但是另一方面,在服务器不需要先前信息时它的应答就较快
· HTTP是媒体独立:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送,客户端以及服务器指定使用适合的MIME-type
MIME
概述
MIME - Multipurpose Internet Mail Extensions
· MIME是描述消息内容类型的标准,用来表示文档、文件或字节流的性质和格式。
· MIME消息能包含文本、图像、视频、音频以及其他应用程序专用的数据。
· 浏览器通常使用MIME类型来确定如何处理URL,因此WEB服务器在响应头中需要添加正确的MIME类型,如果配置不正确,浏览器可能会无法解析文件内容,网站无法正常工作,并且下载的文件也会被错误处理
语法
type/subtype
由类型与子类型两个字符串中间用 / 分隔而组成,不允许有空格。type 表示可以被分多个子类的独立类别,subtype 表示细分后的每个类型;MIME类型对大小写不敏感,但是通常都使用小写。
两种主要的 MIME 类型在默认类型中扮演了重要的角色:
text/plain
<!-- 表示文本文件的默认值 -->
application/octet-stream
<!-- 表示所有其他情况的默认值 -->
其他资料:菜鸟教程YYDS
HTTPS工作原理

Step 1:客户端发起HTTPS请求 【客户端 -> 服务端】
用户在浏览器里输入一个https网址,然后连接到web服务端的443端口
Step 2:服务端返回HTTPS证书 【客户端 <- 服务端】
证书 - 其实就是一对在服务端生成的公钥私钥
其中证书包含:
- 颁发机构信息
- 公钥
- 公司信息
- 域名
- 有效期
- 指纹
Step 3:客户端解析HTTPS证书【客户端】
解析工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构信息、有效期等等
证书不合法,则会弹出一个警告框,提示证书存在问题
证书合法,则会生成一个随机值,然后用证书对该随机值进行加密
Step 4: 传送加密信息 【客户端 -> 服务端】
这部分传送的是 用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密和解密
Step 5:服务端解密信息 【服务端】
服务端用私钥解密后,得到了客户端传过来的随机值(私钥) ,然后把要传输给客户端的信息通过该随机值进行对称加密。
对称加密,就是将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够强悍,私钥够复杂,数据就足够安全
Step 6:传输加密后的信息 【客户端 <- 服务端】
这部分信息是服务端用私钥加密后的信息,可以在客户端被解密还原
Step 7:客户端解密信息 【客户端】
客户端用之前生成的私钥解密服务端传送过来的信息,于是获取了解密后的内容。
整个过程第三方即使监听到了数据,也束手无策
HTTP和HTTPS的区别
HTTP为明文传输,数据未加密,安全性差
HTTPS为加密传输,安全性较高
HTTP协议比HTTPS协议响应快
HTTP协议传输只需要使用TCP建立3次握手连接,客户端和服务端只需要交换3个包
HTTPS协议不仅需要使用TCP建立3次握手链接,还需要SSL握手需要的9个包,一共12个包
HTTPS相比HTTP更消耗服务器资源
因为HTTPS本质上就是建构在SSL/TLS上的HTTP协议
HTTP使用80端口
HTTPS使用443端口
HTTP是无状态、无连接的超文本传输协议,用于浏览器与服务器间的信息传递。HTTPS在其基础上增加了SSL/TLS层,提供加密处理和身份认证,确保通信安全。MIME定义了不同类型的网络数据。HTTPS比HTTP更安全但响应速度慢,消耗更多服务器资源。

被折叠的 条评论
为什么被折叠?



