#coding=utf-8
import socket
def handle_client(client_socket):
"為乙個客戶端進行服務"
recv_data = client_socket.recv(1024).decode("utf-8")
request_header_lines = recv_data.splitlines()
for line in request_header_lines:
print(line)
# 組織相應 頭資訊(header)
response_headers = "http/1.1 200 ok\r\n" # 200表示找到這個資源
response_headers += "\r\n" # 用乙個空的行與body進行隔開
# 組織 內容(body)
response_body = "hello world"
response = response_headers + response_body
client_socket.send(response.encode("utf-8"))
client_socket.close()
def main():
"作為程式的主控制入口"
server_socket = socket.socket(socket.af_inet, socket.sock_stream)
# 設定當伺服器先close 即伺服器端4次揮手之後資源能夠立即釋放,這樣就保證了,下次執行程式時 可以立即繫結7788埠
server_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1)
server_socket.bind(("", 7788))
server_socket.listen(128)
while true:
client_socket, client_addr = server_socket.accept()
handle_client(client_socket)
if __name__ == "__main__":
main()
伺服器端
客戶端
"為乙個客戶端進行服務"
# 如果沒有指定訪問哪個頁面。例如index.html
# 404表示沒有這個頁面
# 因為頭資訊在組織的時候,是按照字串組織的,不能與以二進位制開啟檔案讀取的資料合併,因此分開傳送
# 先傳送response的頭資訊
client_socket.send(response_headers.encode('utf-8'))
# 再傳送body
client_socket.send(response_body)
client_socket.close()
def main():
"作為程式的主控制入口"
server_socket = socket.socket(socket.af_inet, socket.sock_stream)
server_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1)
server_socket.bind(("", 7788))
server_socket.listen(128)
while true:
client_socket, clien_caddr = server_socket.accept()
handle_client(client_socket)
#這裡配置伺服器
documents_root = "./html"
if __name__ == "__main__":
main()
伺服器端
客戶端
Python建立web靜態伺服器
python作為工具,提供了很多好用的命令,比如有時候突然需要建立乙個解析靜態的html頁面的伺服器,我們不需要在安裝http伺服器,python就能夠輕鬆簡單的做到。先建立乙個index.html的頁面 寫上最簡單的hello 用python開始web伺服器 python m httpserver...
python實現靜態web伺服器
http協議簡介 http請求 1 瀏覽器首先向伺服器傳送http請求,請求包括 方法 get還是post,get僅請求資源,post會附帶使用者資料 路徑 full url path 網域名稱 由host頭指定 host www.sina.com以及其他相關的header 如果是post,那麼請求...
python學習之Web靜態伺服器
通過近幾天學習,完成乙個看可以在命令視窗啟動,使用命令指定埠的多工靜態web服務區。這篇文章只附上了主要 html檔案不附 usr bin env python coding utf 8 import socket import re import sys import gevent from ge...