python socket开启简单web服务

python socket开启简单web服务

前言

​ 最近做东西,需要用python开个web服务,十分简单的即可,需要的是尽量简单,然后弄个框架(djanjo)

啥的,那就很麻烦,然后就想到了socket,来实现一个简单的web服务,然后通过写docker来把它存起来!

1 . python编写web服务程序

​ 要是想开启简单地服务,当然调用套接字来一下了。我们来想一下,http的简单原理(由于我们这里不是讲http协议,多的我们就不说了,我们就说http啥都不看不看请求类型,不看报头,不看状态码,不看内容,就看发过来发过去)

​ 当客户端通过浏览器发送一个request请求的时候,然后服务端接收,成功接收后,会返回一个response,并且包含状态码,以及一些信息。 这样我们的思路就是,通过浏览器访问,然后服务器的套接字返回信息,这个信息就是http协议的响应头即可。

下面上代码,代码很简单。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import socket


listen_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #套接字操作,选择方式,绑定端口开启服务。

listen_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)

listen_socket.bind(('0.0.0.0',8080))

listen_socket.listen()

while True:
client_conn,client_addr=listen_socket.accept()#等待连接到来,然后返回信息
request=client_conn.recv(1024)
print('recovery conn\n')

response='HTTP/1.1 200 OK\r\n'
response+='Content-Type:text/html\r\n\r\n'
response+='hello world'
client_conn.send(response.encode())
client_conn.close()

我们测试一下,

  • 1562732367319
  • 1562731853812

成功,捕捉到连接!

那我们一个简单的web服务就构建完成了。