41、http连接、get/post

http 1.0 早期 普通的http连接

  • 每个http请求会先经过tcp/ip连接,三次握手成功后,才能发送http请求,效率低下。

http 1.0 后期

  • 引入了Connection: keep-alive 持久化连接,每个网页只进行一次tcp/ip连接,当网页所需的资源通过http请求全部下载结束后,tcp/ip才会断开。
  • 在请求头增加:Connection: keep-alive

http 1.1

  • 默认开启:Connection: keep-alive
  • 如需关闭:Connection:close
  • 管道传输
    • 支持多个请求同时发送,但响应时,需要按照请求的顺序依次响应,如果前面的接口响应较慢,会阻塞后面的接口。
    • opera浏览器自动支持。其他浏览器需要通过配置。
    • 增加PUT/DELETE等方式

http 2

  • 增加多工模式(客户端同时发送多个请求,服务端同时响应多个请求,无需按照顺序进行响应,避免了阻塞。另外客户端可以指定请求的优先级,优先级越高,服务器就越早回应)
  • 服务器推送(服务器会把客户端需要的资源一起推送到客户端,合适加载静态资源,无需像以前请求完网页,网页根据需要的静态资源再次发起请求)
  • 头信息压缩机制(每次请求都会带上所有信息发送给服务端【HTTP协议不带状态】)
  • 但依旧存在丢包的可能性

http 3

  • 采用QUIC协议,基于UDP协议进行了二次改造,实现了既快又可靠的协议。参考

get和post请求的区别

  • get请求用于获取数据,post用户提交修改数据。
  • get请求的数据为字符串参数,post可以是任意表单数据,包括文件数据。
  • post更加安全,不会被缓存、保存在服务器日志和浏览器记录汇总。
  • post比get请求速度慢
    • post需要先将请求头发送服务器确认,然后发送数据。
    • get会从缓存中读取数据。
    • post不能进行管道化传输。
    • post的请求头内容更多。

url到网页显示的整个过程

  1. 浏览器输入url后会通过dns将url解析为服务器的ip地址
  2. 通过ip访问到对应的服务器或代理服务器
  3. 通过三次握手与服务器建立TCP连接
  4. 建立TCP连接后,浏览器发起http请求
  5. 等待服务器响应
  6. 下载服务器响应的HTML资源
  7. http1.1协议会根据网页中所需的资源再次发起http请求,继续等待并下载资源。
  8. http2协议会在第一次http请求时,将网页所需的资源一次性主动推送给浏览器。
  9. 通过四次挥手关闭TCP连接
  10. 时间线
  11. 呈现页面

你可能感兴趣的:(41、http连接、get/post)