Python通过socket搭建一个web服务器

本文介绍了Socket在网络通信中的作用,展示了如何使用Python实现一个基本的TCP服务器,处理HTTP请求并返回响应。通过Socket,不同计算机间实现数据交换,如Web服务器的工作原理被详细剖析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

01、源码

02、运行结果

03、小结


        Socket是一种计算机网络通信的一种机制,它允许不同计算机或进程之间通过网络进行数据传输和通信。Socket可以被看作是不同计算机之间的数据传输通道,通过这个通道,计算机之间可以进行双向的数据传输。

        在计算机网络中,Socket通常指的是一组用于网络通信的API(应用程序编程接口),这些API提供了一系列函数和方法,用于创建、配置和管理Socket连接。通过Socket,应用程序可以实现网络通信的各种功能,如建立连接、发送和接收数据、关闭连接等。

        常见的Socket类型包括TCP(传输控制协议)和UDP(用户数据报协议)。TCP是一种可靠的、面向连接的协议,它通过建立连接、数据分片、确认和重传等机制来保证数据的可靠传输。UDP是一种不可靠的、无连接的协议,它通过直接发送数据包来进行通信,不保证数据的可靠性。

        使用Socket可以实现各种网络应用,如Web服务器、邮件客户端、即时通信程序等。通过Socket,不同计算机之间可以通过网络进行数据交换,实现远程访问、数据共享和分布式计算等功能。

        HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪“部分,以及哪部分内容首先显示(如文本先于图形)等。

 

01、源码

import socket


def main():
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    sock.bind(('localhost', 8000))
    sock.listen(5)

    while True:
        # 等待浏览器访问
        conn, addr = sock.accept()
        # 接收浏览器发送来的请求内容
        data = conn.recv(1024)
        print(data)

        # 给浏览器返回内容
        conn.send(b"HTTP/1.1 200 OK\r\nContent-Type:text/html; charset=utf-8\r\n\r\n")
        conn.send("<h1 style='color:blue'>Hello,World!</h1>".encode("utf-8"))

        # 关闭和浏览器创建的socket连接
        conn.close()


if __name__ == "__main__":
    main()

02、运行结果

运行程序后,在浏览器输入url:localhost:8000

图片

所读取的内容就是我们在这部分给浏览器返回的内容

图片

同时当我们每请求一次,程序也会返回响应的信息(浏览器请求信息)

图片

    

03、小结

运行程序相当于搭建了一个web服务器,只要该程序一直运行着,该服务器则可以一直访问。不过该服务器只能在该局域网内访问,别人访问不了该服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值