python學習之Web靜態伺服器

2021-08-27 18:24:58 字數 2625 閱讀 8511

通過近幾天學習,完成乙個看可以在命令視窗啟動,使用命令指定埠的多工靜態web服務區。(這篇文章只附上了主要**,html檔案不附)

#!/usr/bin/env python

# coding=utf-8

import socket

import re

import sys

import gevent

from gevent import monkey

monkey.patch_all()

# 定義伺服器類

# 定義服務端套接字

tcp_server_socket = socket.socket(socket.af_inet, socket.sock_stream)

# 繫結埠

tcp_server_socket.bind(('', port))

# 設定埠復用

tcp_server_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, true)

# 設定監聽

tcp_server_socket.listen(128)

print(tcp_server_socket)

# 設定類屬性

self.tcp_server_socket = tcp_server_socket

@staticmethod

def open_file(file_path):

with open("static" + file_path, 'rb') as file:

file_data = file.read()

return file_data

# 定義請求處理方法

# 接受資料

client_request = service_client_socket.recv(4096)

# 列印客戶端請求

# print(client_request)

# 拿到請求路徑

request_line = re.search("/\s*", client_request.decode("utf-8")).group()

print(request_line)

# 判斷是否訪問index

if request_line == "/":

request_line = "/index.html"

# 開啟檔案報錯

try:

response_body = self.open_file(request_line)

# 定義響應行

# 無法開啟檔案,就開啟404.html

response_body = self.open_file("static/404.html")

# 定義響應行

# 定義響應頭

response_hearder = "server: pws1.0\r\ncontent-type: text/html;charset=utf-8\r\n"

# 拼接響應資料

response_data = (response_line + response_hearder + "\r\n").encode('utf-8') + response_body

# 傳送資料

service_client_socket.send(response_data)

# 關閉

service_client_socket.close()

# 定義開始服務的方法

print("引數傳遞錯誤,程式終止...")

return

if not sys.argv[1].isdigit():

print("引數傳遞錯誤,程式終止...")

pythonweb靜態伺服器 靜態Web伺服器

靜態web伺服器 可以發出請求的瀏覽器提供靜態文件的程式。搭建python自帶靜態web伺服器 如何搭建python自帶的靜態web伺服器 windows可以實現資源共享的目的 語法 python m http.server 埠號 1.win r 輸入cmd進入命令指令視窗 2.切換目錄,選擇目錄建...

nginx學習 七 nginx提供靜態資源服務

這裡準備了乙個資料夾,裡面放入了乙個img資料夾和index.html檔案,將檔案上傳到home下。這裡我們從新起個埠 server error page 500 502 503 504 50x.html location 50x.html 注意這裡訪問的時候,是訪問 home static kev...

nginx教程三,搭建乙個靜態資源Web伺服器

3.然後再將tar檔案壓縮成gzip檔案,上傳到nginx所在伺服器中 4.上傳到nginx所在伺服器後,將檔案解壓到 root webassets目錄下 二 nginx中的簡單配置 1.修改nginx.conf檔案如下,其中alias配置處理結果為 使用alias路徑替換location路徑,這是...