HTTP
- HTTP是属于应用层协议,主要解决数据包装。
- HTTP协议是建立在TCP协议之上的。当浏览器需要从服务器获取网页数据时,会发出一次HTTP请求。HTTP会通过TCP建立起一个到服务器的连接通道。当本次请求完成后,HTTP会根据长短连接判断是否断开TCP。
HTTP与HTTPS的区别
HTTP
HTTP是一种 超文本传输协议(Hypertext Transfer Protocol),是计算机在两点之间传输文本、图片、音频、视频等超文本数据的约定和规范。
HTTP主要内容分为 超文本(Hypertext)、传输(Transfer)、协议(Protocol)。
- 超文本:表名不单单是文本,还可以是图片、视频等数据
- 传输:数据需要经过一系列的物理介质,从一个算系统传送到另一个端系统的过程。
- 协议:网络中传递、管理信息的规范(网络协议)
说到HTTP,就必须提一嘴 TCP/IP 协议。因为在浏览器和服务器之间经过 DNS寻址、建立TCP连接后,才会进行HTTP通信。
关于TCP/IP协议的技术知识点,参考:【知识体系 - 网络协议】- TCP/IP协议 - 掘金 (juejin.cn)
区别
- 表现形式:HTTP以
http://开头;而HTTPS以https://开头 - 默认端口:HTTP默认端口是
80;HTTPS默认端口是443 - 安全性:HTTP未经安全加密协议,传输过程易被攻击;HTTP是
HTTP+TLS/SSL组合而成的,经过一系列算法(密钥交换/签名/对称加密/摘要)
GET与POST请求的区别
GET和POST是HTTP协议中常用的两个方法。
除了这两个方法之外,还有HEAD/PUT/DELETE/CONNECT/OPTION这六个请求方法。
区别
- 安全性
- GET 发送的数据作为URL的一部分,且所有人可见,所以不安全
- POST 发送的数据在HTTP请求体中,且URL上不可见,所以相对安全
- 数据长度
- 由于URL的长度是受限制的(max-length:2048个字符),所以GET发动的数据受长度限制,POST不受限制。
HTTP常见状态码
五种类型
| 分类 | 分类描述 |
|---|---|
| 1xx | 指示信息 - 表示请求正在处理 |
| 2xx | 成功 - 表示请求已被成功处理 |
| 3xx | 重定向 - 要完成的请求需要附加操作 |
| 4xx | 客户端错误 - 请求有语法错误或请求无法实现,服务器无法处理请求 |
| 5xx | 服务器端错误 - 服务器处理请求出现错误 |
HTTP的长连接和短连接
也是TCP协议的长连接和短连接
- 短连接:HTTP/1.0 默认使用。客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断。(也称 无状态连接)
- 长连接:HTTP/1.1 默认使用。保持客户端和服务器
TCP的连接,当再一次通信时,依旧使用这一条已经建立好的连接。需要在响应头上加入Connection:keep-alive。但是这个连接也不是永远不断,会有一个保持时间。