HTTP 基础知识
HTTP 协议
HTTP 协议是承载与 TCP 协议之上的。有时也承载与 TLS 或者 SSL 协议之上。
HTTP 和 HTTPS 的区别
- HTTPS 需要到 AC 申请证书,HTTP 不需要
- HTTPS 密文传输,HTTP 明文传输。
- HTTPS 默认使用 433 端口,HTTP 使用 80 端口。
- HTTPS 传输数据比 HTTP 要安全。
HTTPS 的数据传输
- 浏览器将支持的加密信息发给服务器。
- 服务器选择一套浏览器支持的加密算法,以证书的形式回发给浏览器。
- 浏览器验证证书的合法性,并结合证书,公匙,加密信息发给服务器。
- 服务器使用私匙解密信息,验证哈希,加密响应消息回发给浏览器。
- 浏览器解密响应信息,并对消息进行验证,之后进行加密交互数据。
HTTP 当在浏览器中输入网址后会发生什么?
- DNS 域名解析。
- 建立 TCP 链接。
- 发起 HTTP 请求。
- 接受响应结果。
- 浏览器解析 HTML。
- 浏览器布局渲染。
HTTP 的 Get 和 Post。
- 数据可见性
Get:数据在 URL 中可见。
Post:数据在 URL 中不可见。
- 安全性
Post 比 Get 更加安全。
- 数据能否被缓存
Get:能被缓存。
Post:不能被缓存。
- 历史
Get:参数会被保留在浏览历史中。
Post:参数不会被保留在浏览历史中。
- 数据长度
Get:对数据长度有限制,最大数据长度为 2048 个字符。
Post:对数据长度无限制。
- 数据类型
Get:只允许 ASCII 字符。
Post:无限制。
HTTP 的状态码
- 200:成功,服务器已经处理了请求。
- 204:无内容,服务器成功处理了请求,但没有返回内容。
- 404:未找到对应的请求内容。
- 500:服务器内容报错。
HTTP 的 Cookie
- http 的协议是无状态的,那么每一次网页的流转都需要重新登录。为了解决这个问题,引入了 cookie。
- 当客户端第一次向服务器发送请求的时候,服务端会生成 cookie 。记录请求者信息,并把这个 cookie 在响应中添加并返回给客户端。
- 当客户端第二次向服务器发送请求时,会在请求中添加之前的 cookie 。服务器接收到这个请求的时候会先去检查对应的 cookie 信息,根据是否已经存在,返回不同的结果。