GET 和 POST 的区别
区别一:幂等性
- 由于 GET 是读,POST 是写,所以 GET 是幂等的,POST 不是幂等的。
- 由于 GET 是读,POST 是写,所以用浏览器打开网页会发送 GET 请求,想要 POST 打开网页要用 form 标签。
- 由于 GET 是读,POST 是写,所以 GET 打开的页面刷新是无害的,POST 打开的页面刷新需要确认。
- 由于 GET 是读,POST 是写,所以 GET 结果会被缓存,POST 结果不会被缓存。
- 由于 GET 是读,POST 是写,所以 GET 打开的页面可被书签收藏,POST 打开的不行。
区别二:请求参数
- 通常,GET 请求参数放在 url 里,POST 请求数据放在 body(消息体)里。
- GET 比 POST 更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
- GET 请求参数放在 url 里是有长度限制的,而 POST 放在 body 里没有长度限制。
区别三:TCP packet
- GET 产生一个 TCP 数据包;POST 产生两个或以上 TCP 数据包。
HTTP 缓存有哪些方案?
| 缓存(强缓存) | 内容协商(弱缓存) | |
|---|---|---|
| HTTP 1.1 | Cache-Control: max-age=3600 Etag: ABC | If-None-Match: ABC 响应状态码:304 或 200 |
| HTTP 1.0 | Expires: Wed, 21 Oct 2015 02:30:00 GMT Last-Modified: Wed, 21 Oct 2015 01:00:00 GMT | If-Modified-Since: Wed, 21 Oct 2015 01:00:00 GMT 响应状态码:304 或 200 |
HTTP 和 HTTPS 的区别
- HTTP 是明文传输的,不安全;HTTPS 是加密传输的,非常安全。
- HTTP 使用 80 端口,HTTPS 使用 443 端口。
- HTTP 较快,HTTPS 较慢。
- HTTPS 的证书一般需要购买(但也有免费的),HTTP 不需要证书。