http连接(二)

http连接流程

http连接流程分为三步:
- 客户端与服务器创建TCP连接
- 客服端发送http请求,服务器处理并返回响应
- 关闭TCP连接

整体流程如下图:
http连接

http可能的性能问题

  • DNS域名解析。客户端建立TCP请求前需要根据URL获取到对应的ip和端口。如果最近没有访问该域名可能会花费比较长的时间进行域名和ip的转换。
  • TCP连接建立和关闭。TCP连接建立关闭会交换一系列的IP分组,对连接的有关参数进行沟通。大量传输很少数据量,网络的性能会很低。
  • TCP慢启动。TCP连接在刚建立时会限制连接传输的最大速度,随着第一个报文的传输成功,TCP会慢慢提高传输速度。这种调节称为TCP的慢启动。

http连接管理

并行连接

一个页面也引用了100个css或者js,浏览器如果一个一个的去加载,那就太慢了。http允许浏览器打开多个连接,并发的进行http请求。当然并行连接不能一定提高访问的效率。比如说TCP慢启动导致新创建的连接效率都比较低,或者并行连接的打开数量可能也会受到限制。

持久连接

浏览器经常打开来自同一网站的页面,因此在不久的将来可能会继续打开这一网站的页面。http允许浏览器在事物处理结束后,连接保持打开状态,以便未来的请求重用现存的连接。这种事物处理结束后仍然处于打开状态称为持久连接。http1.0通过首部connection:keep-alive,http1.1通过首部connection:persistent,通知服务器客服端想打开一个持久连接

管道化连接

管道化连接是http1.1对持久连接的一个优化。在响应到达服务器之前,按照一定的顺序继续发送请求队列中的其他请求。管道化连接必须是持久连接,请求和响应都是有序的。如果发送了多条请求服务器只处理了部分请求,客户端必须能够重发没有处理的请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中实现HTTP连接,可以使用HTTP Keep-Alive机制。HTTP Keep-Alive机制允许客户端和服务器在同一TCP连接上发送和接收多个HTTP请求和响应,从而避免了每个请求和响应之间建立和关闭TCP连接的开销。 在Python中,可以使用requests库来实现HTTP Keep-Alive机制。具体的实现方式如下: ```python import requests # 创建一个Session对象,该对象会自动处理HTTP Keep-Alive机制 s = requests.Session() # 发送HTTP请求 response = s.get('http://example.com') # 发送另一个HTTP请求,该请求会在同一TCP连接上发送 response = s.get('http://example.com/another_request') ``` 在以上代码中,我们通过创建一个Session对象,并在该对象上发送HTTP请求,从而实现了HTTP连接。注意,在发送第HTTP请求时,我们仍然使用了Session对象,这样可以确保该请求和第一个请求在同一TCP连接上发送。 另外,如果需要在HTTP请求头中添加Keep-Alive选项,可以使用以下代码: ```python import requests # 创建一个Session对象,该对象会自动处理HTTP Keep-Alive机制 s = requests.Session() # 设置HTTP请求头中的Keep-Alive选项 s.headers.update({'Connection': 'Keep-Alive'}) # 发送HTTP请求 response = s.get('http://example.com') ``` 在以上代码中,我们通过更新Session对象的HTTP请求头,添加了Keep-Alive选项。这样,该Session对象在发送HTTP请求时,会自动添加该选项,从而实现HTTP连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值