案例:返回浏览器需要的页面http服务器-代码实现
生活随笔
收集整理的這篇文章主要介紹了
案例:返回浏览器需要的页面http服务器-代码实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import socket
import redef service_client(new_socket):"""為這個客戶端返回數據"""# 1. 接收瀏覽器發送過來的請求 ,即http請求# GET / HTTP/1.1# .....request = new_socket.recv(1024).decode("utf-8")# print(">>>"*50)# print(request)request_lines = request.splitlines()print("")print(">" * 20)print(request_lines)# GET /index.html HTTP/1.1# get post put delfile_name = ""ret = re.match(r"[^/]+(/[^ ]*)", request_lines[0])if ret:file_name = ret.group(1)# print("*"*50, file_name)if file_name == "/":file_name = "/index.html"# 2. 返回http格式的數據,給瀏覽器try:f = open("./html" + file_name, "rb")except:response = "HTTP/1.1 404 NOT FOUND\r\n"response += "\r\n"response += "------file not found-----"new_socket.send(response.encode("utf-8"))else:html_content = f.read()f.close()# 2.1 準備發送給瀏覽器的數據---headerresponse = "HTTP/1.1 200 OK\r\n"response += "\r\n"# 2.2 準備發送給瀏覽器的數據---boy# response += "hahahhah"# 將response header發送給瀏覽器new_socket.send(response.encode("utf-8"))# 將response body發送給瀏覽器new_socket.send(html_content)# 關閉套接new_socket.close()def main():"""用來完成整體的控制"""# 1. 創建套接字tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)# 2. 綁定tcp_server_socket.bind(("", 7890))# 3. 變為監聽套接字tcp_server_socket.listen(128)while True:# 4. 等待新客戶端的鏈接new_socket, client_addr = tcp_server_socket.accept()# 5. 為這個客戶端服務service_client(new_socket)# 關閉監聽套接字tcp_server_socket.close()if __name__ == "__main__":main()
?
總結
以上是生活随笔為你收集整理的案例:返回浏览器需要的页面http服务器-代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 返回index.html页面
- 下一篇: 谷歌浏览器中安装JsonView扩展程序