HTTP/HTTPS

HTTP是无状态、无连接的超文本传输协议,用于浏览器与服务器间的信息传递。HTTPS在其基础上增加了SSL/TLS层,提供加密处理和身份认证,确保通信安全。MIME定义了不同类型的网络数据。HTTPS比HTTP更安全但响应速度慢,消耗更多服务器资源。

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端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值