随笔分类 -  python高级 / 网络编程

python涉及到网络编程相关知识
摘要:步骤 1. 获取执⾏python程序的终端命令⾏参数 2. 判断参数的类型,设置端⼝号必须是整型 3. 给Web服务器类的初始化⽅法添加⼀个端⼝号参数,⽤于绑定端⼝号 示例 import socket import threading import sys # 获取用户请求资源的路径 # 根据请求资 阅读全文
posted @ 2023-08-24 07:18 Allen_Hao 阅读(29) 评论(0) 推荐(0) 编辑
摘要:步骤 1. 把提供服务的Web服务器抽象成⼀个类(HTTPWebServer) 2. 提供Web服务器的初始化⽅法,在初始化⽅法⾥⾯创建socket对象 3. 提供⼀个启动Web服务器的⽅法,让Web服务器处理客户端请求操 作。 示例 1 import socket 2 import threadi 阅读全文
posted @ 2023-08-23 22:11 Allen_Hao 阅读(8) 评论(0) 推荐(0) 编辑
摘要:静态Web服务器的问题 目前的Web服务器,不能支持多用户同时访问,只能一个一个的处理客户端的请求,那么如何开发多任务版的web服务器同时处理多个客户端的请求?可以使用多线程,比进程更加节省内存资源。 多任务版web服务器程序的实现步骤 1. 当客户端和服务端建⽴连接成功,创建⼦线程,使⽤⼦线程专⻔ 阅读全文
posted @ 2023-08-21 23:58 Allen_Hao 阅读(20) 评论(0) 推荐(0) 编辑
摘要:实现步骤 1. 获取用户请求资源的路径 2. 根据请求资源的路径,读取指定文件的数据 3. 组装指定文件数据的响应报文,发送给浏览器 4. 判断请求的文件在服务端不存在,组装404状态的响应报文,发送给浏览器 示例 import socket # 获取用户请求资源的路径 # 根据请求资源的路径,读取 阅读全文
posted @ 2023-08-21 23:44 Allen_Hao 阅读(50) 评论(0) 推荐(0) 编辑
摘要:开发自己的静态Web服务器的步骤 1. 编写一个TCP服务端程序 2. 获取浏览器发送的http请求报文数据 3. 读取固定页面的数据,把页面数据组装成HTTP响应报文数据发送给浏览器。 4. HTTP响应报文数据发送完成以后,关闭服务与客户端的套接字 静态Web服务器-返回固定页面数据的示例代码 阅读全文
posted @ 2023-08-21 23:19 Allen_Hao 阅读(26) 评论(0) 推荐(0) 编辑
摘要:说明 Python自带的静态Web服务器可以通过使用http.server模块来实现。 步骤 打开命令行终端,进入要作为静态文件根目录的文件夹。 运行以下命令启动静态Web服务器: Python 2.x版本:python -m SimpleHTTPServer <port> Python 3.x版本 阅读全文
posted @ 2023-08-21 22:46 Allen_Hao 阅读(387) 评论(0) 推荐(0) 编辑
摘要:TTP响应报文是在HTTP协议中,服务器向客户端发送响应时所使用的数据格式。它包含了响应状态行、响应头部、空行和响应体4个部分。 响应状态行:响应状态行由协议版本、状态码和状态描述组成,用于描述服务器对请求的处理结果。 协议版本:指示服务器使用的HTTP协议版本,如HTTP/1.1。 状态码:标识了 阅读全文
posted @ 2023-08-17 00:00 Allen_Hao 阅读(88) 评论(0) 推荐(0) 编辑
摘要:什么是http请求报文? 请求报文是在HTTP协议中,客户端向服务器发送请求时所使用的数据格式。它包含了请求行、请求头部、空行、请求体4个部分。其中请全体可以没有。 请求行:请求行由请求方法、URI和协议版本组成,用于描述请求要求的操作和资源位置。 请求方法:指示对资源执行的操作类型,如GET、PO 阅读全文
posted @ 2023-08-16 23:56 Allen_Hao 阅读(297) 评论(0) 推荐(0) 编辑
摘要:概念 HTTP的全称是(HyperText Transfer Protocol)即超文本传输协议。 是一种用于在Web上发送和接收信息的应用层协议。它是互联网的核心协议之一,用于客户端和服务器之间的通信。 从3个角度分析http协议: HTTP使用统一的客户端-服务器模型,客户端向服务器发送HTTP 阅读全文
posted @ 2023-08-15 23:56 Allen_Hao 阅读(48) 评论(0) 推荐(0) 编辑
摘要:概念 网址又称为URL,URL的英文全拼是(Uniform Resoure Locator),表达的意思是统一资源定位符,通俗理解就是网络资源地址。 是一串标识和定位互联网上资源的字符串,用于唯一地指示资源的位置和访问方式。 组成 https://www.example.com:443/path/t 阅读全文
posted @ 2023-08-15 23:41 Allen_Hao 阅读(820) 评论(0) 推荐(0) 编辑
摘要:UDP不像TCP创建连接时有3次握手,而是直接发送数据,不管对方是否接收到。 UDP网络通信不区分客户端和服务端。 UDP收发数据的步骤 1.创建UDP套接字对象 2.直接发送数据 3.读取数据 4.关闭套接字 示例 服务端 1 ''' 2 UDP应该说没有服务端和客户端,只是习惯称发请求的为客户端 阅读全文
posted @ 2023-08-12 22:28 Allen_Hao 阅读(40) 评论(0) 推荐(0) 编辑
摘要:分析 当客户端和服务端建立连接成功,创建子线程,使用子线程专门处理客户端的请求,防止主线程阻塞 示例 服务端 1 import socket 2 import threading 3 4 5 # 处理客户端函数 6 def handle_client(conn_socket, ip_port): 7 阅读全文
posted @ 2023-08-12 19:39 Allen_Hao 阅读(24) 评论(0) 推荐(0) 编辑
摘要:TCP socket的发送和接收缓冲区 当创建一个TCP socket对象的时候会有一个发送缓冲区和一个接收缓冲区,这个发送和接收缓冲区指的就是内存中的一片空间。 send或sendall方法是不是直接把数据发给服务端? 不是,要想发数据,必须得通过网卡发送数据,应用程序是无法直接通过网卡发送数据的 阅读全文
posted @ 2023-08-12 19:11 Allen_Hao 阅读(61) 评论(0) 推荐(0) 编辑
摘要:什么是客户端&服务端? 1.TCP网络应用程序开发分为客户端程序开发和服务端程序开发。2. 主动发起建立连接请求的是客户端程序3. 等待接受连接请求的是服务端程序 TCP客户端开发流程 TCP客户端与服务端启动、交换过程: TCP客户端开发步骤: 1.创建客户端套接字对象(买电话) 2.和服务端套接 阅读全文
posted @ 2023-08-12 19:00 Allen_Hao 阅读(48) 评论(0) 推荐(0) 编辑
摘要:网络传输数据的类型(二进制) 网络传输是以二进制数据进行传输的,因此在网络传输数据的时候,数据需要先编码转化为二进制(bytes)数据类型 数据的编解码 在Python中进行网络数据传输编解码通常涉及到将数据转换为字节流进行传输,并在接收方将字节流转换回原始数据。 编码 编码是将数据从一种形式转换为 阅读全文
posted @ 2023-08-12 07:36 Allen_Hao 阅读(422) 评论(0) 推荐(0) 编辑
摘要:什么是TCP? TCP的英文全拼(Transmission Control Protocol)简称传输控制协议,它是一种面向连接的、可靠的、基于字节流的传输层通信协议。 它提供了端到端的数据传输,确保数据按顺序到达目标,并进行错误检测和恢复 常用于对数据进行准确无误的传输,比如: 文件下载,浏览器上 阅读全文
posted @ 2023-08-12 00:10 Allen_Hao 阅读(249) 评论(0) 推荐(0) 编辑
摘要:客户端 ''' 在使用Socket客户端时,还需要考虑以下几点最佳实践: 1. 使用异常处理:Socket操作可能会抛出异常,例如连接错误或数据传输错误。因此,在使用Socket客户端时,应该使用适当的异常处理来捕获和处理这些异常。 2. 关闭连接:在不再使用Socket连接时,应该及时关闭连接,以 阅读全文
posted @ 2023-08-11 22:55 Allen_Hao 阅读(91) 评论(0) 推荐(0) 编辑
摘要:1 import socket # 1. 导入内置的socket模块 2 3 # 2. 创建Socket对象 4 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 5 6 # 3. 连接服务器 7 server_add 阅读全文
posted @ 2023-08-11 22:26 Allen_Hao 阅读(26) 评论(0) 推荐(0) 编辑
摘要:MySQL服务器配置TLS/SSL证书步骤 1. 生成自签名的CA证书: 首先,使用openssl命令生成一个自签名的CA证书。可以执行以下命令来生成: openssl req -x509 -newkey rsa:4096 -keyout ca.key -out ca.crt -days 365 这 阅读全文
posted @ 2023-08-10 00:26 Allen_Hao 阅读(73) 评论(0) 推荐(0) 编辑
摘要:在网络通信中,保护数据的安全性是非常重要的。Socket模块本身并不提供对数据的加密传输功能,但可以与其他加密协议或库结合使用,实现加密传输。 常见的加密传输方式包括SSL/TLS和SSH SSL/TLS加密传输 说明: 使用Python的ssl模块可以对Socket连接进行SSL/TLS加密。 首 阅读全文
posted @ 2023-08-10 00:12 Allen_Hao 阅读(507) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示