python3實現微型的web伺服器

2022-09-28 16:45:20 字數 2113 閱讀 8999

實驗目的:用socket 模擬乙個微型的web伺服器,當py指令碼run起後,實微型web server架起了,然後用本地瀏覽器訪問127.0.0.1:8080(web server的ip_port)時web伺服器就會將網頁內容傳給瀏覽器,實現網頁瀏覽. 

sw+sys: python3.7.2 + windows10 64bit

本地準備的server端網頁為**的hao123主頁(我已上載並上傳,點選這裡)

通過這個實驗讓我學到了:

1. 當get請求乙個主頁時,要完整的顯示乙個頁面(包括文字、、css絢染等)是要get多次請求的。

2. respone回覆本地頁網,open(filepath, rwa)時要特別的注意

import socket

import os

curfilepath = os.path.split(os.path.realpath(__file__))[0].replace("\\" , "/")

print(f'curfilepath: ')

def new_socket_server(new_socket, new_addr):

if new_addr[0] != '':

print(f'當前客戶端已連線上server端. ')

# 3.接收資訊

file_name = ''

request_data = new_socket.recv(1024).decode('utf-8')

if request_data != '':

print(f'有收到新的資訊,資訊如下:\n')

file_name = request_data.splitlines()[0].split(' ')[1]

print(f'file_name: ')

if file_name == '/':

file_name = '/index.html'

print(f'file_name: ')

with open(curfilepath + '/test.txt', 'a+') as f:

f.write(file_name + '\n')

# 4.回覆資訊

# 1.建立socket

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

# 2.連線server

server_ip_port = ('127.0.0.1', 8080)

tcp_server_socket.bind(server_ip_port)

tcp_server_socket.listen(128)

whilecrhrvpxv true:

print('正在等待clienwww.cppcns.comt端連線... ...')

new_socket, new_addr = tcp_server_socket.accept()

new_socket_server(new_socket, new_addr)

new_socket.close()

if __name__ == '__main__':

main()

本文標題: python3實現微型的web伺服器

本文位址:

python3實現的web端json通訊協議

之前有用 python3開發 實現過tcp 協議的,後來又實現了 協議的通訊,今天公司想做乙個功能自動測試系統,下午弄了一會,發現 json 格式的實現可以更簡單一點,如下 簡單解說一下,一般與伺服器通訊分兩塊,一塊是 get協議,一塊是 post 協議,get 協議很簡單,直接就可訪問了,post...

python3實現的web端json通訊協議

之前有用python3實現過tcp協議的,後來又實現了http協議的通訊,今天公司想做乙個功能自動測試系統,下午弄了一會,發現json格式的實現可以更簡單一點,如下 簡單解說一下,一般與伺服器通訊分兩塊,一塊是get協議,一塊是post協議,get協議很簡單,直接就可訪問了,post協議,實際上把d...

python3實現的web端json通訊協議

之前有用python3實現過tcp協議的,後來又實現了http協議的通訊,今天公司想做乙個功能自動測試系統,下午弄了一會,發現json格式的實現可以更簡單一點,如下 簡單解說一下,一般與伺服器通訊分兩塊,一塊是get協議,一塊是post協議,get協議很簡單,直接就可訪問了,post協議,實際上把d...