美文网首页
HTTP连接管理

HTTP连接管理

作者: 阿狸小朋友 | 来源:发表于2019-06-22 18:54 被阅读0次

1. HTTP网络协议栈
在HTTP客户端向服务器发送报文前,需要IP地址端口在客户端和服务器之间建立一条TCP/IP连接

OSI体系结构和TCP/IP体系结构对比

2. 报文
HTTP报文包含三个部分:

  • 起始行(start line)
  • 首部字段(header
  • 主体(body

3. URL语法
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
其中URL最重要的3个部分是方案(scheme)主机(host)路径(path)
例如:http://www.joes-hardware.com/seasonal/index.html

4. 方法

方法名 描述 是否有body
GET 从服务器获取文档
HEAD 只从服务器获取文档首部和GET的首部完全一致
POST 向服务器发送数据
PUT 请求的主体部分村数载服务器上
TRACE
OPTIONS
DELETE 从服务器删除文档

5. TCP连接
TCP连接通过4个值来识别:
<源IP地址,源端口号,目的IP地址,目的端口号>

6. socket
socket是操作系统提供的操纵TCP连接的工具或者接口实现。

7. HTTP事务时延(请求过程)

  1. 客户端根据URL确定服务器的IP和端口,最近如果没访问过,需要通过DNS对主机名转化为IP地址,这个过程可能需要数十秒
  2. 客户端会发送一条TCP连接请求(三次握手的时延)
  3. TCP连接成功后,客户端会发送请求报文,服务器收到请求报文会进行处理
  4. 服务器返回响应报文

8. TCP时延(性能聚焦区域)

  • TCP连接的三次握手
  • TCP慢启动拥塞控制
  • 数据聚集的Nagle算法
  • 用于捎带确认的TCP延迟确认算法
  • TIME_WAIT时延和端口耗尽

9. 传输大数据时(TCP进行分段或UDP中IP进行分片)
采用TCP协议进行数据传输是不会造成IP分片的,因为一旦TCP数据过大,超过了MSS,则在传输层会对TCP包进行分段,自然到了IP层的数据报肯定不会超过MTU,当然也就不用分片了。而对于UDP数据报,如果UDP组成的 IP数据报长度超过了1500字节,那么IP数据报显然就要进行分片,因为UDP不能像TCP一样自己进行分段。
总结:UDP不会分段,就由我IP来分。TCP会分段,当然也就不用我IP来分了!

MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。 UDP分片

10. HTTP连接方式

  • 串行连接
    任务按顺序执行,每次任务开始都要进行TCP连接
  • 并行连接
    通过多条TCP连接发起并发的HTTP请求,每个请求都有自己的TCP连接,消耗内存资源
  • 持久连接
    重用TCP连接,以消除连接及关闭时延,能消除慢启动的拥塞适应阶段,能更快的传输数据
  • 管道化连接
    通过共享的TCP连接发起并发的HTTP请求
  • 复用的连接
    交替传送请求和响应报文(实验阶段)

相关文章

  • 设计模式 -- 享元模式

    公用某些资源与数据库连接池,HTTP连接池很相似使用HTTP连接池管理长连接,可以复用HTTP连接,省去创建TCP...

  • HTTP 连接管理

    HTTP 是如何使用TCP连接的 TCP连接的时延,瓶颈以及存在的故障 HTTP 的优化,包括并行连接,keep-...

  • HTTP连接管理

    Blog: HTTP连接管理 曾经有同事给我说有客户问她我们的产品是否支持长连接,听到这问题,我告诉她长连接可以通...

  • HTTP连接管理

    Http事务的时延:(1)TCP建立连接握手(2)TCP慢启动拥塞控制(3)数据聚集的Nagle算法(4)用于捎带...

  • HTTP连接管理

    1. HTTP网络协议栈在HTTP客户端向服务器发送报文前,需要IP地址和端口在客户端和服务器之间建立一条TCP/...

  • HTTP连接管理

    概要 本文主要讲解目前用于提高HTTP连接的常用手法(内容是对HTTP权威指南的总结)。要解决如何提高HTTP效率...

  • 23 长连接、短连接、长轮询、短轮询、WebSocket

    短连接和长连接 短连接:每次Http请求都会建立Tcp连接,管理容易长连接:只需要建立一次Tcp连接,以后Http...

  • http权威指南第四章

    连接管理 重点 http是如何使用tcp连接的; tcp连接的时延、瓶颈以及存在的障碍 http的优化包括并行连接...

  • HTTP & Socket

    HTTP HTTP连接管理 HTTP连接的过程 HTTP事务的时延 原因: 客户端首先需要根据URI确定Web服务...

  • HttpClient 总结

    采用Http连接池的方式,管理http的连接,这样可以减少每次请求创建、关闭连接的时间。用httpclient工具...

网友评论

      本文标题:HTTP连接管理

      本文链接:https://www.haomeiwen.com/subject/qsmvqctx.html