Mai*_*rop 2 python protocols python-sockets python-requests
我是 python 的初学者,我想知道 python 中的套接字和请求模块之间的区别是什么。如果这个问题的格式不好,我很抱歉,如果这可能是由于我不知道不同的互联网协议到底是如何工作的,那么如果您分享相关文献,以便我自己寻找,我将不胜感激我的问题的答案。你能举例吗?
一切是如何相关的
\nRequests 是最常用、最高级别的 Python HTTP 客户端之一。它基于 urllib3 构建,而 urllib3 构建于 httpclient lib 之上。这些都是利用socket进行调用的HTTP应用协议库,因此socket是它们的基础。
\n有关基础套接字的更多信息
\n套接字广泛用于大多数操作系统来与网络通信,因为它们可以控制大量类型的连接并传输数据。HTTP 库依赖于套接字,因此没有它们就没有 HTTP/TCP 协议连接。然而,另一方面,套接字可以在没有 HTTP 的情况下存在。
\n结论
\n最后,请求库基本上构建在几个库上,其中套接字(基本上)是底层。您\xe2\x80\x99会发现requests是最容易使用的,因为它是最高级别且文档最多。您也可以使用 pysocks,但是它要困难得多,因为它的级别较低,但是有一些文档可以引导您找到正确的方向来建立自己的连接并发送自己的编码数据以充当 HTTP 请求。主要的缺点是 pysocks 更难使用,但可定制性更强且速度更快。大多数Python网络应用程序/抓取器都使用请求,而在某些情况下,专家很少使用套接字。
\n更多阅读
\nHTTP 简介:https: //www.tutorialspoint.com/http/index.htm
\n区分 HTTP 和 HTTPS 协议对于网络来说非常重要: https: //www.cloudflare.com/learning/ssl/why-is-http-not-secure/
\n请求(Python 客观上使用最广泛的 HTTP 库):https://docs.python-requests.org/en/latest/
\nPysocks(python使用套接字):https ://pypi.org/project/PySocks/
\n发送者/接收者的关系(高级):https ://www.geeksforgeeks.org/layers-of-osi-model/
\n