1.http协议基于tcp,有连接可靠传输

2.http请求报文:

GET / HTTP/1.1
Host: 192.168.57.131:8800
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9

a.Get / HTTP/1.1:第一个/表示浏览器请求什么页面。平时输入www.xxx.com,表示访问一个主页,如果输入www.xxx.com /a/b/c.html.这句就变成Get /a/b/c.html HTTP/1.1

b.Connection:分为长短连接

c.user-agent:客户端浏览器版本

d.accept:表示浏览器可以接受什么格式的数据

e.accept-encoding:如果服务器发送数据较大,采用什么格式压缩数据

3.服务器代码

import socketdef server(t_sock):# 循环:为一个客户多次服务while True:# 从客户端接收http请求recv_data = t_sock.recv(1024)print(recv_data.decode("gbk"))# 给客户端发送http应答,在网页上显示‘你好’# http可能面对不同的os,所以约定用\r\n来表示换行# http的header和body区分之处:只要出现第一个空行,二者便区分开send_data = "HTTP/1.1 200 OK\r\n\r\n<h1>你好</h1>"t_sock.send(send_data.encode("gbk"))def main():# 创建tcp套接字tcp_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 设置当服务器先调用close,即服务器四次挥手后能将资源立即释放,这样就保证了下次运行程序时能# 立即连接tcp_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)# 绑定ip,端口tcp_sock.bind(('', 54321))# 改为监听套接字tcp_sock.listen(128)# 循环:可以为多个客户服务while True:# 使用accept等待客户连接,此时程序阻塞# 客户连接后返回两个值,服务套接字和客户端地址client_sock, client_add = tcp_sock.accept()# 为客户服务,用一个方法来实现,注意参数server(client_sock)# 关闭服务套接字client_sock.close()# 关闭监听套接字tcp_sock.close()if __name__ == "__main__":main()

python——tcp服务器与http协议相关推荐

  1. python TCP服务器v1.8 - PyQt5登录界面美化+淡入淡出

    TCP聊天服务器套接字v1.8 所有版本记录: v1.0 : TCP聊天服务器套接字|PyQt5+socket(TCP端口映射+端口放行)+logging+Thread(含日志,html)+anaco ...

  2. Python TCP服务器v1.7 - PyQt5 server服务端来临

    TCP聊天服务器套接字v1.7 所有版本记录: v1.0 : TCP聊天服务器套接字|PyQt5+socket(TCP端口映射+端口放行)+logging+Thread(含日志,html)+anaco ...

  3. python tcp服务器_Python 创建TCP服务器的方法

    问题 你想实现一个服务器,通过TCP协议和客户端通信. 解决方案 创建一个TCP服务器的一个简单方法是使用 socketserver 库.例如,下面是一个简单的应答服务器: from socketse ...

  4. python tcp服务器 多线程_Python中的多线程TCP服务器

    我使用python的threding模块创建了一个简单的多线程tcp服务器.每次连接新客户端时,该服务器都会创建一个新线程. #!/usr/bin/env python import socket, ...

  5. python tcp服务器_python实现TCP服务器端与客户端的方法详解

    本文实例讲述了python实现TCP服务器端与客户端的方法.分享给大家供大家参考.具体如下: TCP服务器程序(tsTserv.py): from socket import * from time ...

  6. 2022-07-11 Python TCP服务器与客户端

    服务器 创建一个服务器代理类TCPServer,其中有init.accept.handle.close函数. 在初始化函数中创建socket对象,绑定主机的地址和端口,并将socket变为一个监听套接 ...

  7. doraemon的python tcp协议和udp协议

    ### 8.9 tcp协议和udp协议#### 8.9.1 tcp协议 -------打电话 特点:- ​ 可靠 慢 全双工通信 - ​ 建立连接的时候:三次握手 - ​ 断开连接的时候:四次挥手 - ...

  8. Python TCP服务器

    TCP服务器的创建也比较简单: 1.建立一个socket对象 2.绑定要监听的IP地址和端口 3.当有客户端请求时,启动多线程处理客户端连接 import socket import threadin ...

  9. python tcp服务器模板_python socket之tcp服务器与客户端示例

    Python中用socket编写服务器和客户端... 先说下我的问题,本来预想是,客户端连上服务器,然后向服务器发送信息服务器端代码 while 1: buf = s.recv(1024) 改成 wh ...

最新文章

  1. 查找Linux中内存和CPU使用率最高的进程
  2. JDK 11 马上就要来了!JDK 12 还会远吗?
  3. Boost:字符串转换实例
  4. 世界十大无法科学解释灵异事件(进来发表自己看发)
  5. SQL中的left outer join,inner join,right outer join用法 (左右内连接)
  6. jdk11 javafx_JDK 11上的JavaFX
  7. 第1届ICPC青少年程序设计竞赛(正式赛)A 题 - Divide
  8. 多线程快速入门 123
  9. python接口自动化(三十七)-封装与调用--读取excel 数据(详解)
  10. 转”使用UBOOT烧写根文件系统和内核的方法
  11. SpringBoot项目resources下指定目录的所有文件下载到Centos服务器上,浏览器访问API后资源包直接下载本地磁盘,Java删除linux文件,zip文件打包
  12. unity4.0多平台发布强势登陆引领3D游戏开发新时代
  13. 费曼和西蒙的学习方法分享
  14. Win10 资源管理器闪退-解决方法
  15. Endnote X9软件关联WPS解决方案
  16. vue在移动端实现电子签名手写板
  17. tf计算矩阵维度_tensorflow tf.matmul() (多维)矩阵相乘(多维矩阵乘法)
  18. 百度搜索之site 使用
  19. Android万能遥控菜单选择添加,将小米米家万能遥控器添加到Home Assistant
  20. udp攻击的PHP木马

热门文章

  1. 相较于OA系统的固定资产管理,资产云管理补充了什么?
  2. java虚拟机系列:垃圾收集器
  3. Jvm垃圾收集器总结之 Parallel Scavenge 收集器
  4. nginx 屏蔽 Server信息或nginx版本
  5. Collections.sort简介
  6. Java可变参数以及一个简单应用
  7. 二 CH4INRULZ_v1.0.1
  8. matlab 连通域分割,基于OpenCV.Net连通域分析进行文本块分割
  9. 重装windows后如何找回我的ubuntu
  10. Mac下Nginx无法停止