常见请求方法及状态码分析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

python爬虫学习笔记记录


正式上班之后,发现其实逆向并不是一切,有很多情况,一整个完整的项目逆向可能只占其中工作量的五分之一甚至更少,有对于各类基础知识的掌握之后,才会有更清晰的学习方向,就像是盖房子一样,有坚实可靠的地基,房子才会稳定,而不是空中阁楼

一、常见的请求方法

http协议规定了 浏览器与服务器进行数据交互的过程中必须要选择一种交互的方式,在http协议中,定义了八种请求方式

1.1 GET

用途:用于请求指定的页面信息,并返回实体主体。
特点:GET请求是一种无状态、幂等的请求方法。它通常用于获取数据,比如打开网页、获取文章内容等。GET请求的参数通过URL传递,并且在请求的URL中可见。由于GET请求的数据被包含在URL中,因此不适合传输敏感信息或大量数据。
安全性:相对较低,因为URL中的参数可以被缓存和记录在历史中。

1.2 POST

用途:用于向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。
特点:POST请求将数据放在请求的消息体中发送,而不是作为URL的一部分。因此,它适合发送大量数据或执行敏感操作。POST请求常用于提交表单数据或上传文件。由于数据在消息体中,所以POST请求相对更安全。
安全性:相对较高,因为数据在请求体中,不会在URL中暴露。

1.3 PUT

用途:用于更新资源。
特点:PUT请求会替换目标资源的所有当前表示形式。它通常用于上传或更新文件,并且客户端需要知道要更新的完整资源。

1.4 DELETE

用途:用于删除指定的资源。
特点:DELETE请求是幂等的,即无论发送多少次,结果都是相同的——资源被删除。它常用于从数据库或文件系统中删除数据。

1.5 HEAD

用途:类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头。
特点:HEAD请求用于检索写在响应头中的元信息,而无需传输整个内容。它通常用于测试超链接的有效性、获取资源的修改时间等。

1.6 OPTIONS

用途:描述了目标资源的通信选项,允许客户端确定Web服务器的能力或支持的HTTP方法和头。
特点:OPTIONS请求用于获取目标资源所支持的通信选项。客户端可以通过此请求来了解服务器支持哪些HTTP方法、哪些头部字段等。

1.7 TRACE

用途:用于在测试或诊断时追踪消息在服务器之间的路径。
特点:TRACE请求会返回服务器收到的请求消息,主要用于测试或诊断目的。

1.8 CONNECT

用途:建立到目标资源标识的服务器的隧道。
特点:CONNECT方法主要用于通过HTTP代理建立HTTPS连接。当使用HTTPS协议进行安全通信时,客户端可能会先发送一个CONNECT请求到代理服务器,以建立与目标服务器的安全隧道。

1.9 其他说明

  • URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 操作。
  • 有的网站和服务器为了做反爬虫机制,也经常会不按常理出牌。有可能一个应该使用get方法的请求就一定要改成post请求,这个要视情况而定
  • head和get本质是一样的,区别在于head不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用get,但这里用head则意义更加明确。
  • put这个方法比较少见。HTML表单也不支持这个。本质上来讲, put和post极为相似,都是向服务器发送数据,但它们之间有一个重要区别,put通常指定了资源的存放位置,而post则没有,post的数据存放位置由服务器自己决定。
  • DELETE删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。
  • OPTIONS:这个方法很有趣,但极少使用。它用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。
  • 常用请求基本上就是get与post
  • get是不安全的,因为在传输过程,数据被放在请求的URL中;get传送的数据量较小,这主要是因为受URL长度限制,不能大于2kb;
  • post的所有操作对用户来说都是不可见的;post传送的数据量较大,一般被默认为不受限制
  • get限制Form表单的数据集的值必须为ASCII字符;而post支持整个ISO10646字符集
  • get执行效率比Post方法好。get是form提交的默认方法

二、状态码的分类

1** :信息,服务器收到请求,需要请求者继续执行操作
2** :成功,操作被成功接收并处理
3** :重定向,需要进一步的操作以完成请求
4** :客户端错误,请求包含语法错误或无法完成请求
5** :服务器错误,服务器在处理请求的过程中发生了错误

2.1 1xx(信息性状态码):

表示请求已被接受,正在处理。

  • 100 Continue表示客户端应继续发送请求。

2.2 2xx(成功状态码):

表示请求已成功被服务器接收、理解并处理。

  • 200 OK:请求成功。
  • 204 No Content:请求成功处理,但没有返回任何内容。
  • 206 Partial Content:服务器成功执行了范围请求(如视频分段加载)。

2.3 3xx(重定向状态码):

需要完成进一步的操作以成功完成请求。

  • 301 Moved Permanently:资源已被永久移动到新的URL。
  • 302 Found(或302 Moved Temporarily):资源临时移动到了新的URL。
  • 304 Not Modified:客户端缓存的资源是最新的,无需重新传输。

2.4 4xx(客户端错误状态码):

表示请求包含错误或无法被服务器理解。

  • 400 Bad Request:请求中有语法错误。
  • 401 Unauthorized:需要身份验证信息。
  • 403 Forbidden:服务器理解请求,但拒绝执行它。
  • 404 Not Found:服务器上找不到指定的资源。

2.5 5xx(服务器错误状态码):

表示服务器在处理请求时发生了错误。

  • 500 Internal Server Error:服务器遇到了一个未曾预料的情况,导致其无法完成对请求的处理。
  • 502 Bad Gateway:作为网关或代理工作的服务器从上游服务器收到了无效的响应。
  • 503 Service Unavailable:由于临时的服务器维护或者过载,服务器当前无法处理请求。

后续继续更新

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要检查请求响应状态码异常、请求过于频繁、响应时间过长等异常或异常行为,你可以考虑以下方法: 1. 检查状态码异常:在进行网络请求时,服务器通常会返回一个状态码来指示请求的处理结果。常见状态码包括 200(成功)、404(未找到)、500(服务器错误)等。通过检查响应中的状态码,你可以确定是否存在异常。例如,如果收到大量的 500 错误状态码,可能表示服务器出现了问题。 2. 检查请求频率:频繁的请求可能会对服务器造成过载,导致响应变慢或出现错误。你可以检查请求日志或使用网络监测工具来查看请求的频率。如果发现某个 IP 地址或用户发起了大量的请求,可能需要采取措施限制其访问。 3. 检查响应时间:响应时间过长可能表示网络延迟、服务器负载过高或其他问题。你可以使用网络监测工具来测量请求响应的时间,并分析是否存在异常。如果某个请求响应时间明显超过正常情况,可能需要进一步排查。 4. 使用性能监测工具:性能监测工可以帮助你实时监测应用程序的性能指标,包括请求响应时间、吞吐量、错误率等。这些工具可以帮助你及时发现异常行为,并提供详细的性能分析和报告。 5. 设置阈值和警报:根据你的应用程序的需求和性能指标,可以设置一些阈值来监测异常行为。当某个指标超过设定的阈值时,系统可以触发警报,以便及时采取措施应对异常情况。 总而言之,通过监测和分析请求响应状态码、频率和时间等指标,你可以检查是否存在异常行为。这些方法可以帮助你及时发现问题并采取相应的措施来解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值