當開啟乙個瀏覽器之後,伺服器肯定會預設開啟首頁,因此設計為首頁模式
import socket
import re
def work(request):
'''從瀏覽器請求裡解析出資源路徑'''
#獲取請求行
head_list = re.split(r'\r\n',request)
request_line = head_list[0]
#獲取到請求的資源路徑
data = re.split(r' ',request_line)
return data[1]
#對路徑的安全檢查
path = data[1]
if path == '/':
path = '/index.html'
return path
def handle_client(client_soc):
'''獲取乙個客戶端請求'''
#獲取請求頭
client_msg = client_soc.recv(1024*4)
print(client_msg)
if not client_msg:
print('客戶端已經關閉鏈結')
client_soc.close()
return
#獲取使用者請求的資源路徑
path = work(client_msg.decode('utf-8'))#建立了乙個尋求資源路徑的物件
try:
#讀取檔案內容
with open('html/html'+ path,'rb') as file:
file_content = file.read()
#返回響應資料
#讀取404檔案內容
with open('html/404.html','rb') as file:
file_content = file.read()
#處理響應資料
#關閉客戶端套接字
client_soc.close()
def main():
'''建立乙個能響應瀏覽器請求的web伺服器'''
#初始化伺服器套接字
server_soc = socket.socket(socket.af_inet,socket.sock_stream)
server_soc.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1) # 設定套接字復用位址
server_soc.bind(('',1419))
server_soc.listen(128)
while true:
#獲取客戶端鏈結
print('正在準備客戶端鏈結...')
client_soc,client_addr = server_soc.accept()
#為乙個客戶端提供服務
handle_client(client_soc)
#關閉伺服器套接字
HTTP伺服器返回web瀏覽器指定檔案版
從瀏覽器解析資源路徑 獲取請求行 head list re.split r r n request print head list request line head list 0 獲取請求資源路徑 datas re.split r request line print datas 對路徑的安全檢查...
Python 開發web伺服器,返回HTML頁面
python 開發web靜態伺服器 返回固定值 胖子老闆,來包檳榔 從上乙個篇章的內容中已經完成了使用tcp協議返回http的請求,達到乙個返回資料到訪問瀏覽器的效果。那麼本次篇章的需求 就是返回乙個html檔案到瀏覽器。那麼該怎麼去開發這個功能呢?那麼還有乙個問題,就是訪問瀏覽器的時候的url路徑...
返回固定頁面的web伺服器
import socket def handle client socket con 接收來自客戶端的請求,並接收請求報文,解析,返回 伺服器接收客戶端的請求報文 request socket con.recv 4096 decode print request 伺服器拼接響應報文並回覆 respo...