HTTP 基本概览

102 阅读2分钟

GET 和 POST 的区别

区别一:幂等性

  1. 由于 GET 是读,POST 是写,所以 GET 是幂等的,POST 不是幂等的。
  2. 由于 GET 是读,POST 是写,所以用浏览器打开网页会发送 GET 请求,想要 POST 打开网页要用 form 标签。
  3. 由于 GET 是读,POST 是写,所以 GET 打开的页面刷新是无害的,POST 打开的页面刷新需要确认。
  4. 由于 GET 是读,POST 是写,所以 GET 结果会被缓存,POST 结果不会被缓存。
  5. 由于 GET 是读,POST 是写,所以 GET 打开的页面可被书签收藏,POST 打开的不行。

区别二:请求参数

  1. 通常,GET 请求参数放在 url 里,POST 请求数据放在 body(消息体)里。
  2. GET 比 POST 更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
  3. GET 请求参数放在 url 里是有长度限制的,而 POST 放在 body 里没有长度限制。

区别三:TCP packet

  1. GET 产生一个 TCP 数据包;POST 产生两个或以上 TCP 数据包。

HTTP 缓存有哪些方案?

缓存(强缓存)内容协商(弱缓存)
HTTP 1.1Cache-Control: max-age=3600 Etag: ABCIf-None-Match: ABC 响应状态码:304 或 200
HTTP 1.0Expires: Wed, 21 Oct 2015 02:30:00 GMT Last-Modified: Wed, 21 Oct 2015 01:00:00 GMTIf-Modified-Since: Wed, 21 Oct 2015 01:00:00 GMT 响应状态码:304 或 200

HTTP 和 HTTPS 的区别

  1. HTTP 是明文传输的,不安全;HTTPS 是加密传输的,非常安全。
  2. HTTP 使用 80 端口,HTTPS 使用 443 端口。
  3. HTTP 较快,HTTPS 较慢。
  4. HTTPS 的证书一般需要购买(但也有免费的),HTTP 不需要证书。