Web靜態伺服器 顯示需要的頁面,正規表示式

2021-10-04 11:13:39 字數 3289 閱讀 9698

web靜態伺服器–顯示需要的頁面,正規表示式

import socket

import re

defservice_client

(new_socket)

:"""為這個客戶端返回資料"""

# 1. 接收瀏覽器傳送過來的請求 ,即http請求

# request 就是header裡的內容,即[

)# 這裡把request的內容按行切割成列表

)# 【^/】表示非斜槓,即「index"之前的get 等,

# 然後(/【^ 】)的 / 表示/index的那個斜槓,

# 【^ 】表示非空,一直匹配到http前那個空格停止

# request_lines[0] 表示request_lines的第乙個元素(header第一行),即get /index.html....

if ret:

file_name = ret.group(1)

# print("*"*50, file_name)

if file_name ==

"/":

file_name =

"/index.html"

# 2. 返回http格式的資料,給瀏覽器

)# 2.1 準備傳送給瀏覽器的資料---header

# 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(

)

request_lines = request.splitlines() # 這裡把request的內容按行切割成列表

# 【^/】表示非斜槓,即「index"之前的get 等,

# 然後(/【^ 】)的 / 表示/index的那個斜槓,

# 【^ 】表示非空,一直匹配到http前那個空格停止

# request_lines[0] 表示request_lines的第乙個元素(header第一行),即get /index.html....

Web靜態伺服器 顯示需要的頁面

coding utf 8 import socket import re from multiprocessing import process 常量,所有字母全部大寫 設定靜態檔案根目錄 html root dir html defhandle client client socket 處理客戶端...

Web靜態伺服器02 顯示需要的頁面

coding utf 8 import socket import re def handle client client socket 為乙個客戶端進行服務 如果沒有指定訪問哪個頁面。例如index.html 404表示沒有這個頁面 因為頭資訊在組織的時候,是按照字串組織的,不能與以二進位制開啟檔...

Web靜態伺服器 2 顯示需要的頁面

coding utf 8 import socket import re def handle client client socket 為乙個客戶端進行服務 如果沒有指定訪問哪個頁面。例如index.html 404表示沒有這個頁面 因為頭資訊在組織的時候,是按照字串組織的,不能與以二進位制開啟檔...