2020-04-05

如何自己手动搭建一个HTPP服务器

HTTP服务器是基于TCP的socket连接。

1.创建一个socket连接的服务器

import socket
# 创建一个socket连接
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 给服务器绑定ip地址和端口号
server_socket.bind(('192.168.31.199', 9090))
# 摘要:listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程。在TCP服务器编程中listen函数把进程变为一个服务器,并指定相应的套接字变为被动连接。
server_socket.listen(128)

2.接收客户端的访问

# 接收到的数据是一个元祖,元组里有两个元素。
# 拆包分别接收
# 第0个元素是 客户端的socket连接
# 第1个元素是客户端的ip地址和端口号
client_socket, client_addr = server_socket.accept()

# 从客户端的socket里获取数据
data = client_socket.recv(1024).decode('utf-8')
print(f'接收到来自{client_addr[0]}的数据{data}')

# 返回内容之前需要设置HTTP响应头
# 每设置一个响应头就要换一行 \n
client_socket.send('HTTP/1.1 200 OK \n'.encode('utf-8'))
client_socket.send('content-type:text/html\n'.encode('utf8'))

# 所有的响应头设置完毕之后,在换行
client_socket.send('\n'.encode('UTF-8'))

# 最后发送内容
client_socket.send('hello'.encode('utf-8'))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 5,682评论 0 4
  • 多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原...
    LZM轮回阅读 6,091评论 0 12
  • 基于上一篇文章手动搭建HTTP服务器。。。。。 今天讲一讲代码里面具体的函数实现以及参数。。。 1.ip地址的绑定...
    ouchaowen阅读 676评论 0 0
  • TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TC...
    字节码阅读 4,576评论 0 3
  • iOS网络HTTP、TCP、UDP、Socket 知识总结OSI 七层模型我们一般使用的网络数据传输由下而上共有七...
    蜗牛也有梦想阅读 7,144评论 0 3