提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、常见的请求方法
-
- [1.1 GET](#1.1 GET)
- [1.2 POST](#1.2 POST)
- [1.3 PUT](#1.3 PUT)
- [1.4 DELETE](#1.4 DELETE)
- [1.5 HEAD](#1.5 HEAD)
- [1.6 OPTIONS](#1.6 OPTIONS)
- [1.7 TRACE](#1.7 TRACE)
- [1.8 CONNECT](#1.8 CONNECT)
- [1.9 其他说明](#1.9 其他说明)
- 二、状态码的分类
-
- [2.1 1xx(信息性状态码):](#2.1 1xx(信息性状态码):)
- [2.2 2xx(成功状态码):](#2.2 2xx(成功状态码):)
- [2.3 3xx(重定向状态码):](#2.3 3xx(重定向状态码):)
- [2.4 4xx(客户端错误状态码):](#2.4 4xx(客户端错误状态码):)
- [2.5 5xx(服务器错误状态码):](#2.5 5xx(服务器错误状态码):)
前言
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:由于临时的服务器维护或者过载,服务器当前无法处理请求。
后续继续更新