zoukankan      html  css  js  c++  java
  • 使用python实现一个简单的http服务器

     1 import socket
     2 
     3 
     4 class MyServer:
     5     def __init__(self, ip, port):
     6         self.socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
     7         self.socket.bind((ip,port))    # 绑定的IP和端口
     8         self.socket.listen(128)
     9 
    10     def run_forever(self):
    11         while True:
    12             client_cocket,client_addr = self.socket.accept()  # 获取http请求head及来源地址
    13             data = client_cocket.recv(1024).decode("utf8")    # 对收到的信息解码
    14             path = ''
    15             if data:
    16                 print("data is {}".format(data)) 
    17                 print('{}'.format(client_addr))
    18                 path = data.splitlines()[0].split(" ")[1]
    19                 print("请求的路径是:{}".format(path))
    20 
    21             # response head
    22             response_head = "HTTP/1.1 200 OK"
    23 
    24             if path == '/login':
    25                 response_body = "this is login path"
    26             elif path == "/logout":
    27                 response_body = "you will logout"
    28             elif path == "/":
    29                 response_body = "welcome to index"
    30             else:
    31                 response_head = "HTTP/1.1 400 page not fund"
    32                 response_body = "you want to get page is lossing"
    33 
    34             response_head += "
    "  # 注意每一行结尾都要有一个空行
    35             response_head +=  "content-type: text/html; charset=UTF-8
    
    " # 注意这里最后还要有一个空行
    36             response_body += "
    "
    37             
    38             response = head + response_body  # 拼接响应报文
    39             client_cocket.send(response.encode("utf8"))  # 发送响应报文
    40             
    41 server = MyServer("0.0.0.0",9090)  # 0.0.0.0表示任何IP地址都可以请求到服务
    42 server.run_forever()
  • 相关阅读:
    CSS:命名规范心得分享
    css中用一张背景图做页面的技术有什么优势?
    ie8 css hack
    简单介绍几个CSSReset的方法
    牛人也得看的CSS常识
    DIV+CSS网页布局常用的一些基础知识整理
    font-size:100%有什么作用?
    为什么无法定义1px左右高度的容器
    Div+CSS常见错误总结
    从数字千分位处理认识(?<=)、(?=)、(?:)
  • 原文地址:https://www.cnblogs.com/yingyingdeyueer/p/13513282.html
Copyright © 2011-2022 走看看