关于Http的知识点整理

本文详细介绍了HTTP的相关知识点,包括Post与Get的区别、HTTP首部、状态码、长短连接与轮询、HTTP不安全性及HTTPS原理与优缺点。还探讨了HTTP与HTTPS的区别,HTTP 1.1、2.0、3.0的演变及各自特点,如HTTP 2.0的多路复用和首部压缩,HTTP 3.0引入的QUIC协议。
摘要由CSDN通过智能技术生成

http

http分为三部分:请求行、首部、实体(内容)

请求行包括了 请求方法 + URL + 协议版本

首部分为 请求首部、响应首部(有一些共用的)

实体就是报文的内容

1.Post和Get有什么区别?

从用法上说,Post一般用于无副作用、幂等的场景;Post多用于有副作用、不幂等的情况。

冥等的定义:发送M和N次请求,服务器上资源状态一致。比如说,注册10个账号和11个账号是不冥等的,对文章进行了10次11次修改是幂等的,因为前者多了一个账号(资源),后者是更新同一个资源。

副作用的定义:副作用是指对服务器上资源做改变。比如搜索是无副作用的,但更新是有副作用的。

从本质上说,Post和Get都取决于http,使用哪个方法与应用层传输没有必然的联系。HTTP没有要求,如果是POST,数据就要放在BODY中。也没有要求GET,数据(参数)就一定要放在URL中而不能放在BODY中。

细节上有一些区别:

Get能请求缓存,但是Post不可以
Post支持更多编码类型
Get回退无害,Post会再次提交
Get能被保存为书签,Post不可以
由于浏览器Url有限制,所以Get的长度受限,但Post不受限(因为都在Body里)

如果想有更多了解,可以参考:

  1. GET和POST:辩证看100 continue,以及最根本区别
  2. 99%的人都理解错了HTTP中GET与POST的区别
  3. 听说『99% 的人都理解错了 HTTP 中 GET 与 POST 的区别』??
  4. W3C对比:HTTP 方法:GET 对比 POST

2.http

2.1 http首部

2.1.1 常用通用首部

cache-control : 控制缓存行为

connection : 连接的性质,比如keep-alive

user-Agent :用户信息

Date :报文创建时间

http请求中connection=keep-alive的意义在哪里

HTTP 是基于 TCP 的,每一个 HTTP 请求都需要进行三次握手。如果一个页面对某一个域名有多个请求,就会进行频繁的建立连接和断开连接。所以HTTP 1.0 中出现了Connection: keep-alive,用于建立长连接。Keep-Alive 模式更加高效,因为避免了连接建立和释放的开销。但是,长时间的TCP连接容易导致系统资源无效占用,配置不当的keep-alive有时比重复利用连接带来的损失还更大。所以,正确设置keep-alive timeout时间非常重要。

http请求中cache-control有哪些参数可以设置

Public :表示任何缓存都可以缓存响应

private :表示响应仅供单个用户使用,不得由共享高速缓存存储。私有缓存可以存储响应。

no-cache : 强制缓存在发布缓存副本之前将请求提交到源服务器以进行验证。

no-store: 缓存不应存储有关客户端请求或服务器响应的任何内容。

还有一些关于到期时间、重新验证加载的,具体可以参看MDN文档

2.1.2 常用请求首部

Referrer Policy : 表示来源的(浏览器所访问的前一个页面),可以用于辅助检测crsf攻击,一般浏览器的默认值是no-referrer-when-downgrade,意思是h

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值