Python 计算机网络基础知识

928 阅读5分钟

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

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

前言

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

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

网络是怎么工作的?

接下来,我们要来学习计算机网络基础相关的知识吧,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重定向
300Multiple Choices 客户请求的文档可以在多个位置找到
301已移动 — 请求的数据具有新的位置且更改是永久的
302已找到 — 请求的数据临时具有不同 URL。
304未修改 — 未按预期修改文档。
4xx客户机中出现的错误
400错误请求 — 请求中有语法问题
401未授权 — 未授权客户机访问数据
403禁止 — 即使有授权也不需要访问
5xx服务器中出现的错误
500内部错误 — 因为意外情况,服务器不能完成请求
502错误网关 — 服务器接收到来自上游服务器的无效响应
505不支持HTTP版本

常用工具

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

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

Postman 官网文档教程

总结

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

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

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