如何处理常见的 HTTP 请求类型?HTTP代理用什么?SOCKS5代理哪家好?

要处理常见的HTTP请求类型,首先我们要来了解HTTP请求具体有哪些?

一、HTTP请求的特性

  1. 只能单项向客户端发起请求,由服务器响应的请求-响应模式
  2. 数据传输部分基于TCP协议实现的
  3. HTTP请求没有记忆功能,无法获取之前请求或者响应的内容
  4. 不能保存连接状态,每次连接只处理一个请求,用完即段,下次再发送请求,需要重新建立连接。

二、HTTP请求方式

序号
方式
描述
1
GET
向指定的资源发出请求,并返回实体主体
2
POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和或已有资源的修改。
3
DELETE
请求服务器删除Request-URI 所标识的资源
4
HEAD
向服务器索与GET请求相一致的响应,其中响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
5
PUT
向指定资源位置上传其最新内容
6
CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
7
OPTIONS
返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
8
TRACE
回显服务器收到的请求,主要用于测试或诊断

三、常见的状态码

日常我们遇到的比较多的状态码是这几个:
  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

当然,具体到问题的状态码,也是我们工作中会遇到的:

1.http状态码1XX系列

请求已被接受,需要继续处理。
值得一提的是,除非在某些试验条件下,服务器禁止向此类客户端发送此类响应。

2.http状态码2XX系列

最常见的有200、201状态码:

2.1 http状态码200

请求已成功,请求所希望的响应头或数据体将随此响应返回

2.2 http状态码201

请求成功并且服务器创建了新的资源,且其 URI 已经随Location 头信息返回。

2.3 http状态码202

服务器已接受请求,但尚未处理

3. http状态码3XX系列

需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址在本次响应的 Location 域中指明。

3.1 http状态码301

被请求的资源已永久移动到新位置。
服务器返回此响应时,会自动将请求者转到新位置。

3.2 http状态码302

一般访问HTTPS的网站,会出现自动跳转,这属于正常现象,如果访问的是http网站,出现302就是网站拒绝服务,这时候,出现大量302,就需要我们进行优化爬虫策略。

4. http状态码4XX系列

4XX系列:表示请求错误。代表了客户端可能发生了错误,妨碍了服务器的处理。

4.1 http状态码401

请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

4.2 http状态码403

服务器拒绝请求,可能由目标网站的防护措施导致,建议升级爬虫策略。
与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。

4.3 http状态码404

404状态码:请求失败,请求所希望得到的资源未被在服务器上发现。
这个状态码被广泛应用于:当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。

4.4 http状态码407

代理认证信息错误,需要用户认证,需要带正确的用户认证头。

4.5 http状态码429

返回这个状态码有两种可能:
1.请求超过了代理的限制,我们需要控制好每个HTTP的请求,降低请求或者增加IP量,例如可以按照300毫秒为单位进行管理;
2.如果大量出现429,就证明是目标网站有反爬机制,限制爬虫的请求。

5. http状态码5XX系列

服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

5.1 http状态码500

服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
一般来说,这个问题都会在服务器的程序码出错时出现。

5.2 http状态码503

由于临时的服务器维护或者过载,服务器当前无法处理请求。
这个基本是暂时状态,一段时间会恢复

5.3 http状态码504

返回504有两种情况:
1.代理正在切换IP,休息一段时间再试即可;
2.目标网站不可达,也就是目标网站封了HTTP代理,需要做爬虫优化

四、结论

总的来说,我们可以根据返回的状态码来判断具体是哪一步骤除了问题。当然,使用一家优质的HTTP代理,是所有解决所有问题最重要的根源。动态代理最好是散段的IP,IP可用率要高,同时,匿名程度是需要高匿的,匿名级别太低,也是非常容易导致项目失败,当然,也要满足用户对有高并发、高突发的需求;访问顺畅,支持白名单和帐密验证方式,如果只有单一的,应用起来会有局限性。建议采用优质的HTTP代理,如华益云HTTP代理
添加图片注释,不超过 140 字(可选)