Web服务器-HTTP相关-快速整一个服务器响应浏览器(3.2.1)

@

1.HTTP分析

当你去访问一个网址的时候,浏览器会发送而各种头信息给服务器
然后服务器根据信息,返回一定数据的格式
最简单的就是下面的代码
自己构造返回数据的时候,头信息一定放在前面
当出现空格的时候,下一行就是返回的超文本HTML

HTTP/1.1 200 OK

<!Doctype html>....

2.简单服务器

from socket import *
import sys




def main():

    if len(sys.argv) != 2:
        print("可以按照如下方式运行:python3 xxx.py 7890")
        port = 7890
    else:
        # 运行方式为python3 xxx.py 7890
        port = int(sys.argv[1])


    # 创建socket
    tcp_server_socket = socket(AF_INET, SOCK_STREAM)
    # 本地信息
    address = ('', port)
    # 绑定本地信息
    tcp_server_socket.bind(address)
    # 将主动套接字变为被动套接字
    tcp_server_socket.listen(128)

    while True:
        # 等待客户端的链接,即为这个客户端发送文件
        client_socket, clientAddr = tcp_server_socket.accept()
        # 接收对方发送过来的数据
        recv_data = client_socket.recv(1024)  # 接收1024个字节
        print(recv_data)

        with open(r"F:\Work\Python-Work\python学习8-7重跑\3.web服务器\http\baidu.html","rb") as e:
            str_ = e.read()
        client_socket.send(str_)



    # 关闭监听套接字
    tcp_server_socket.close()


if __name__ == "__main__":
    main()

说明
创建一个socket对象,配置ip和host等
然后监听,给个循环一直监听
如果有客户访问,就把客户socket对象赋值给client_socket
通过client_socket发送响应信息
其中.html中要包含头部信息
打开浏览器访问,加载出页面说明没问题

关于作者

个人博客网站
个人GitHub地址
个人公众号:
在这里插入图片描述

posted @ 2019-08-23 11:49  BothSavage  阅读(168)  评论(0编辑  收藏  举报