关于HTTP连接关闭,我有两个问题:
>
如果一个客户端通过连接发送一个HTTP请求:靠近HTTP服务器,那么在客户端收到响应后,HTTP服务器还是客户端有责任发送TCP FIN?
如果客户端发送了一个格式错误的HTTP请求,而服务器发送了一个400错误的请求,那么最好的做法是通过服务器关闭连接(即使HTTP请求有connection:keep alive),还是保持连接仍然处于活动状态?
提前感谢你回答我的问题?
>
当服务器收到400个错误请求时,它将发送带有keep alive头的响应,因为如果客户机想要发送另一个请求,那么他们可以使用预先存在的连接(该连接在一定时间内关闭,它有一个过期日期)。Keep Alive报头更多的是关于不让网络因TCP连接需求而饱和。你基本上会说“我会和你谈两分钟,不管你送我什么,我都会通过这个连接回答你”
服务器只是从用户接收命令的对象。你问他,他问不问。TCP FIN是您发送到服务器以关闭连接的东西,但您可以选择何时不再与他通信。客户端传输第一个FIN,并接收ACK,以确保服务器得到它。然后服务器启动自己的FIN,并等待确认。如果一切正常,你和你的服务器就不再是朋友了。
我在详细学习http协议时,偶然发现了这个教程。我认为当发出http请求时,会通过客户端(浏览器)和服务器建立TCP连接。在TCP连接上发送http请求数据,在服务器端解析http请求,并在同一TCP连接上发送http响应。发送响应后,TCP连接终止。对于下一个http请求,将建立一个新的TCP连接。但下面的教程说了些别的。我是对还是错?
问题内容: 我想知道,您如何关闭与请求(python-requests.org)的连接? 有了它,但我要如何做请求相同的? 码: 问题答案: 正如这里所讨论的,实际上没有HTTP连接之类的东西,而httplib所指的HTTPConnection实际上是底层的TCP连接,它根本不了解您的请求。索取摘要,您将永远看不到它。 实际上,最新版本的Requests确实使TCP连接保持活动状态。.如果您确实希
网络爬虫工作过程可以理解为模拟浏览器操作的过程,浏览器的主要功能是向服务器发出请求,在浏览器窗口中展示服务器返回的网络资源。 一、浏览器处理网页的过程 我们先来看一下浏览网页的基本过程,比如我们在浏览器地址栏输入:http://www.baidu.com 回车后会浏览器会显示百度的首页。 这段网络通信过程中到底发生了什么?简单来说这段过程发生了以下四个步骤: 当我们在浏览器输入URL http:/
上一个小节中,我们简单的介绍了 HTTP 协议,但是,并没有针对 HTTP 的请求和响应进行更详尽的描述。但是,分析请求和响应信息是我们进行爬虫工作中的重要步骤,因此,有必要详细的介绍这两个步骤。 我们还是复用之前的访问慕课网的例子进行 HTTP 协议的解析。关于怎么获取请求头和响应头的信息的内容,我们会在后面讲解第一个爬虫的时候进行讲解。 使用 get 方法请求慕课网的请求信息如下: GET /
我正在使用Apache HTTPComponents(版本4.5.2),并试图通过代理服务器请求HTTPS页面。 编辑: 我的主要问题是,我需要知道如何区分代理服务器的故障和请求的URI的故障(对于HTTP和HTTPS)。我有很多代理,它们不是百分之百可靠的,所以在代理失败的情况下,我需要用不同的代理服务器重试请求。 例如(对于HTTPS),在这两种情况下都可以返回NoHttpResponseEx
是否可以在不等待响应的情况下发送HTTP请求? 我在做一个物联网项目,需要记录传感器的数据。在每一个设置中,都有许多传感器,一个中央协调器(主要由Raspberry Pi实现)从传感器收集数据,并通过Internet将数据发送到服务器。 提前感谢! 编辑:传感器是无线的,但他们使用的技术在发送到协调器时很少(或没有)延迟。此协调器必须通过Internet发送数据。但是,假设互联网连接不好。因为这将