• 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,如果不支持,就使用多连结来并发请求,如连接都有请求在处理,那只能继续等待空闲了。

  • 相关阅读:
    MingW 综合资料参考
    技术文档编写的参考
    web地图的几个参考地址
    Linux的版本
    学习C语言一些的好的书和网站
    基于JAVA的web框架 GWT SmartGWT ExtGWT Vaadin
    Linux Shell的类别
    JavaScript图书推荐
    云盘分享 自绘画【儿童眼里的世界的确不同】
    GWT概述
  • 原文地址:https://www.cnblogs.com/Sandy-1128/p/http.html
Copyright © 2020-2023  润新知