HTTP/HTTPS简介
HTTP(超文本传输协议,Hypertext Transfer Protocol)是一种用于网络传输超文本到本地浏览器的传输协议。它定义了客户端与服务器之间请求和响应的格式。HTTP工作在TCP/IP模型上,通常使用端口80
HTTPS(超文本传输安全协议,HyperText Transfer Protocol Secure)是HTTP的安全版本,它在HTTP下增加了SSL/TLS协议,提供了数据加密、完整性校验和身份验证。HTTPS通常使用端口443
- HTTP
- HTTP协议是用于从万维网服务器传输超文本到本地浏览器的传送协议
- HTTP是一个基于TCP/IP通信协议来传输数据(HTML文件,图片文件、查询结果等)
- HTTPS
- HTTPS协议是一种通过计算机网络进行安全通信的传输协议
- HTTP本身是不安全的,因为传输的数据未经加密,可能会被窃听或篡改,为了解决这个问题,引入了HTTPS,即在HTTP上加入了SSL/TLS协议,为数据传输提供了加密和身份验证
- HTTPS经由HTTP进行通信但利用SSL/TLS来加密数据包,HTTP开发的主要目的是提供对网站服务器的身份认证,保护交换资料的隐私与完整性
- HTTP的URL是由
http://
起始与默认使用端口80,而HTTPS的URL则是由https://
起始与默认使用端口443
HTTP工作原理
- HTTP协议工作于客户端-服务端Client-Server架构下
- 工作过程通常如下:
- 客户端发起请求:用户通过客户端(如浏览器)输入URL,客户端向服务器发起一个HTTP请求。
- 服务器处理请求:服务器接收到请求后,根据请求的类型(如GET、POST等)和请求的资源进行响应的处理
- 服务器返回响应:服务器将处理结果包装成HTTP响应消息,发送回客户端
- 客户端渲染页面:客户端接收到响应后,根据响应内容渲染页面,展示给用户
- Web服务器有:Nginx服务器,Apache服务器,IIS服务器
- HTTP默认端口号为80,但也可以改为8080或其他端口
- HTTP三点注意事项:
- **HTTP是无连接的:**无连接的含义是,限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后即断开连接,采用这种方式可以节省传输时间。
- HTTP是媒体独立的:只要客户端和服务端知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送,客户端以及服务器指定使用合适的MIME-type内容类型
- HTTP是无状态的:HTTP协议是无状态协议,无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,另一方面,在服务器不需要先前信息时,它的应答就较快

HTTPS作用
- HTTPS的作用主要是在不安全的网络上创建一个安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对切丁和中间人攻击提供合理的防护。
- HTTPS的信任基于预先安装在操作系统中的证书颁发机构(CA)
- 因此,与一个网站之间的HTTPS连线仅在这些情况下可被信任:
- 浏览器正确地实现了HTTPS且操作系统中安装了正确且受信任的证书颁发机构;
- 证书颁发机构仅信任合法的网站;
- 被访问的网站提供了一个有效的证书,也就是说它是一个由操作系统信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告);
- 该证书正确地验证了被访问的网站
- 此协议的加密层(SSL/TLS)能够有效地提供认证和高强度的加密。
HTTP与HTTPS区别
- 虽然HTTP与HTTPS在名称上非常相似,但它们在安全性上有本质的区别:HTTPS通过使用SSL/TLS协议,为数据传输提供了加密和完整性校验,从而保护了用户的隐私和数据安全。随着网络意识的提高,越来越多网站开始使用HTTPS来保护用户数据
- 主要区别如下
- 加密
- HTTP:数据传输过程中不加密,容易被截获和篡改
- HTTPS:使用SSL/TLS协议对传输的数据进行加密,保护数据传输过程中的安全性
- 端口
- HTTP:默认使用端口80
- HTTPS:默认使用端口443
- 安全性
- HTTP:不提供数据加密,安全性较低
- HTTPS:提供数据加密和完整性校验,安全性较高
- 证书
- HTTP:不需要证书
- HTTPS:需要SSL证书来启动加密,并验证服务器的身份
- 性能
- HTTP:由于不加密数据,性能略高于HTTPS
- HTTPS:由于需要进行加密和解密,有一定性能开销
- 搜索引擎优化SEO
- HTTP:搜索引擎可能会对没有使用HTTPS的网站进行降权
- HTTPS:搜索引擎倾向于优先索引和展示使用HTTPS的网站
- 浏览器显示
- HTTP:在大多数现代浏览器中,HTTP网站通常显示为不安全
- HTTPS:浏览器会显示一个锁形图标,表示网站时安全的
- 成本
- HTTP:通常免费
- HTTPS:需要购买SSL证书,可能会有一定成本
- 应用场景
- HTTP:适用于不去要传输敏感信息的网站,如新闻网站、博客
- HTTPS:适用于需要传输敏感信息的网站,如网上银行,在线购物,电子邮件等
HTTP消息结构