zoukankan      html  css  js  c++  java
  • 1个TCP连接可以发多少个HTTP请求?

    1.浏览器与服务器建立一个TCP连接后是否会在HTTP请求完成后断开,什么情况下会断开?

    2.一个TCP连接可以对应几个HTTP请求?

    3.一个TCP连接中HTTP请求发送可以一起发送吗?(比如一起发3个请求,再3个响应一起接收)

    4.为什么有时候刷新页面不需要重新建立SSL连接?

    5.浏览器对同一Host建立TCP连接的数量有无限制?

    答案:

    1.是否在HTTP请求后断开,HTTP1.0一个服务器在发送完响应后就会断开TCP连接,但这样每次请求都会重新建立连接和断开,代价过大。因此标准中没有设定,但某些服务器对请求中header中Connection选项进行了支持,如果是keep-alive,请求完成后会继续保持连接。

    HTTP1.1就把Connection头写进了标准,默认持久连接,除非请求中申明Connection:close。

    2.如果是keep-alive,一个TCP连接可以对应很多个请求

    3.HTTP1.1中,同一时间只能处理一个请求,虽然1.1中规定了Pipelining(同时接收请求,按顺序返回响应)来解决这个问题,但浏览器默认该功能关闭,浏览器无法判断响应是哪一个请求的,问题比较多,若第1个响应延迟或不能正确处理,将会导致其他响应阻塞等等。

    HTTP2提供了Multiplexing多路传输特性,可以在一个TCP中同时完成多个HTTP请求,并行完成。

    4.TCP保持连接的情况,不需再次进行SSL

    5.有,Chrome最多允许对同一个Host建立6个TCP连接,不同浏览器有差别。优先使用HTTP2,如果不支持,就使用多连结来并发请求,如连接都有请求在处理,那只能继续等待空闲了。

  • 相关阅读:
    js -- 判断数组是否为空?
    vue 初始化高德地图
    git .gitignore 忽略规则的匹配语法
    vue 人脸识别 demo
    vue音乐app——VSCODE中设置vue文件模板
    vue音乐项目——解析stylus中的 &.router-link-active
    十月训练记录
    概率与期望 学习笔记
    山东省队集训整理
    APIO2020 简要题解
  • 原文地址:https://www.cnblogs.com/Sandy-1128/p/http.html
Copyright © 2011-2022 走看看