Python 计算机网络基础知识

语言: CN / TW / HK

theme: smartblue

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。

前言

在我们日常生活中,网络是随处可见,不管我们使用的手机还是电脑,都离不开网络的支持。网络连接我们通往全球各个各地,缩短人与人之间的距离,随时畅享在网络信息的海洋里。

我们不仅仅使用网络我们带来的便捷,我们也要思考一下如下问题:

网络是怎么工作的?

接下来,我们要来学习计算机网络基础相关的知识吧,Let's go~

Python网络库

Python 作为高级语言之一,也支持对网络编程相关的模块。

  • Python内置库提供了urllib、request模块
  • Python 还支持第三块模块:selenium、aiohttp、phantomjs

TCP/IP网络模型

👉 OSI七层模型

| 名称 | 说明 | --- | --- | | 应用层 | 为网络程序提供网络服务的接口 | 表示层 | 将上层数据或者信息进行变换,保证应用程序能理解 | 会话层 | 负责建立、管理、终止进程之间的会话 | 传输层 | 负责将上层数据分段提供端到端的传输,代表设备网关 | 网络层 | 负责对子网间的数据包进行路由选择,代表设备路由器 | 数据链路层 |将网络层的数据进行打包,或者将物理层数据进行解析传给网络层。代表设备交换机 | 物理层 | 将数据解析传给数据链路层,或者将数据链路层传的数据进行打包传给硬件设备进行传输。代表设备网卡、集线器

👉TCP/IP网络模型有四层:

| 名称 | 协议 | --- | --- | | 应用层 | SMTP、FTP、DNS、SNMP、NFS、HTTP、TELNET | 传输层 | TCP、UDP | 网络层 | ICMP、IGMP、IP、ARP、RARP | 网络接口层 | LAN、WAN、MAN

URL

👉 URL(Uniform Resource Locator)对象代表统一资源定位器。

网页请求方式

👉在网络请求过程中主要分为Request和Response - Request:请求向服务器放送请求访问 - Response:服务器接收到客户端的请求后,服务器会验证请求的有效,通过请求的内容查询后返回给客户端。

💡 网络请求方为GET和POST

  • GET:最常见的请求方式,传输的数据显示在URL中,且对数据传输大小有限制
  • POST:URL不显示传输的数据,,以表单形式进行传参,可以进行查询和修改信息

🔔GET和POST重点说明 1. GET和POST 网络层都是使用的TCP协议 2. GET在网络请求中只产生一个TCP包,POST则在整个网络中产生2个TCP包 GET在一次请求中,把HEADER和数据一次性传给服务器,POST则先传输HEADER给服务器,服务器返回给100后,则继续发送数据给服务器,返回200。

HTTP和HTTPS

HTTP:超文本传输协议,属于应用层协议,常用于web浏览器和服务器之间传递信息

HTTPS:超文本传输安全协议,通过使用SSL/TSL加密技术和HTTP协议结合进行网络数据安全传输

HTTP和HTTPS区别:

  1. HTTP协议默认TCP协议端口是80,HTTPS协议则是TCP协议443端口
  2. HTTP协议传输是明文传输的,HTTPS协议传输之前需要SLL对数据进行加密
  3. HTTP协议页面响应比HTTPS快,HTTP协议需要3个TCP包,HTTPS传输数据需要12个TCP包

HTTP状态码

| 状态码 | 说明 | --- | --- | | 2XX | 成功 | 200 | 请求成功 | 201 | 紧接POST命令 | 202 | 已接收用于处理,但处理未完成 | 203 | 返回部分信息 | 204 | 无响应,已接收到请求,但不存在要返回的信息 | 3xx | 重定向 | 300 | Multiple Choices 客户请求的文档可以在多个位置找到 | 301 | 已移动 — 请求的数据具有新的位置且更改是永久的 | 302 | 已找到 — 请求的数据临时具有不同 URL。 | 304 | 未修改 — 未按预期修改文档。 | 4xx | 客户机中出现的错误 | 400 | 错误请求 — 请求中有语法问题 | 401 | 未授权 — 未授权客户机访问数据 | 403 | 禁止 — 即使有授权也不需要访问 | 5xx | 服务器中出现的错误 | 500 | 内部错误 — 因为意外情况,服务器不能完成请求 | 502 | 错误网关 — 服务器接收到来自上游服务器的无效响应 | 505 | 不支持HTTP版本

常用工具

我们在进行调试过程中通常使用最多的是Postman

Postman 工具非常强大,不仅可以模拟各个协议的接口请求,还支持批量触发等脚本运行

Postman 官网文档教程

总结

本期,我们主要了解Python支持网络编程的相关的模块,以及对计算网络相关的基础知识进行学习

接下来我们会陆续开始学习Python网络编程相关模块方法的学习

以上是本期内容,欢迎大佬们点赞评论,下期见~