Http 和 Https
Http(默认端口号 80)
超文本传输协议 (Http,HyperText Transfer Protocol) 是互联网上使用最为广泛的一种网络协议(应用层). 设计 Http 最初的目的是为了提供一种发布和接收 html 页面的方法. 它可以使浏览器更加高效. Http 协议是以明文方式发送信息的, 如果黑客截取了 web 浏览器和服务器之间的传输报文, 就可以直接获得其中的信息.
Http 请求报文结构
请求行: 请求方法, URL, 协议版本号, 回车符
请求头部: 设置 Http 请求的各种参数
空行: 必须的空行, 表示请求头部的结束
请求正文: 携带上传的数据, 主要是 POST 请求
Http 响应报文结构
状态行: 协议版本, 状态码, 状态码描述
响应头部: 说明客户端使用的一些附加信息, 如 date,content-type
空行
响应正文: 返回的数据
请求 / 响应的步骤
客户端连接到 Web 服务器
发送 Http 请求
服务器接受请求并返回 Http 响应
释放 TCP 连接
客户端浏览器解析 HTML 内容
URL 到页面的过程
DNS(Domain Name System, 域名系统)解析
建立 TCP 连接
发送 Http 请求
服务器处理请求并返回 Http 报文
浏览器解析渲染页面
连接结束
详细过程可参考 https://www.cnblogs.com/xianyulaodi/p/6547807.html
GET 和 POST 的区别
Http 报文层面: GET 将请求信息放在 URL 中, POST 放在报文体中
数据库层面: GET 请求符合幂等性 (多次操作和一次操作的结果一致) 和安全性(不会对数据库进行修改),POST 不符合
其它: GET 可以被缓存, 被存储, POST 不行
Https(默认端口号 443)
是以安全为目标的 HTTP 通道, 也就是安全版的 HTTP, 通过在 HTTP 下加入 SSL 层来提供安全传输支持. Https 的主要作用包括: 建立信息安全的通道, 保证数据的安全传输以及确认网站的真实性.
什么是 SSL?
SSL(Security Sockets Layer, 安全套接层), 为网络通信提供安全以及数据完整性的一种安全协议, SSL 位于 TCP 与各应用层之间, 是操作系统对外提供的 API,SSL3.0 版本以后被称为 TSL. 主要通过身份验证和数据加密保证网络通信的安全和数据的完整性.
Https 数据传输流程
浏览器将支持的加密算法信息发送给服务器
服务器选择一套浏览器支持的加密算法, 以证书的形式回发浏览器
浏览器验证证书合法性, 并结合证书公钥加密信息发送给服务器
服务器使用私钥解密信息, 验证哈希, 加密响应消息回发浏览器
浏览器解密响应消息, 并对消息进行验真, 之后进行加密交互数据
Http 和 Https 的区别
HTTP | HTTPS |
---|---|
HTTP | HTTP |
TCP | SSL or TSL |
IP | TCP |
。。。 | IP |
Https 需要到 CA 申请证书, Http 不需要
Https 密文传输, Http 明文传输
连接方式不同, 使用的端口号不同
Https 更安全
来源: https://www.cnblogs.com/sasworld/p/11516758.html