国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

手寫網站服務器~用Python手動實現一個簡單的服務器,不借助任何框架在瀏覽器中輸出任意內容

2450184176 / 2769人閱讀

摘要:前言在公司網站開發中,我們往往借助于等網站開發框架去提高網站開發效率。

前言

在公司網站開發中,我們往往借助于Flask、Django等網站開發框架去提高網站開發效率。那么在面試后端開發工程師的時候,面試官可能就會問到網站開發的底層原理是什么?

我們不止僅僅會使用框架開發,還需要知其所以然

今天領大家不借助任何框架的基礎上手動搭建一個資料查找網站

主頁左側可以免費領取【代碼】【相關教程、資料】,或者對于本篇文章有疑問的同學可以私信我

主要內容

  • TCP網絡模型
  • 正則表達式匹配資源
  • 如何編寫一個tcp server服務端

開始我們的代碼,先是導入模塊

如何實現一個靜態的服務器呢? 可以使用Python自帶的一個通訊模型:socket

python中內置的網絡模型庫tcp / udp

import socket

為瀏覽器發送數據的函數

1. 當瀏覽器鏈接到網站服務器的時候

def service_client(new_socket):    request = new_socket.recv(1024)    print(request)

2. 向瀏覽器發送http數據

如果瀏覽器在接收完http協議數據之后遇到了換行,自動將下面的數據轉成網站內容body中去

response = "HTTP/1.1 200 OK /r/n"response += "/r/n"# 構建你想要顯示的數據內容response += "hello world"

3. 瀏覽器接受到的數據是由編碼集的,所以我們需要對字符串進行一次編碼

 new_socket.send(response.encode("utf-8"))

4. 當服務完瀏覽器之后,需要釋放系統資源

new_socket.close()

創建一個執行函數

1. 創建一個tcp套接字

socket模塊需要兩個參數 網絡協議(pc ipv4 ipv6) 模型類型

def main():    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

我們操作系統內部有65535個服務端口,當一個程序運行的時候[進程] 占用一個端口
瀏覽器軟件運行占用的端口:80
文件上傳端口:22
網站指定端口:443

端口是有限的,當程序完成任務之后一定要釋放端口 刷新資源

2. 當網站服務中斷時 需要立即釋放端口

tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

3.綁定本機信息

tcp_server_socket.bind(("", 80))

通過瀏覽器去訪問網站資源 [數據 html css JavaScript 靜態文件(圖片 音頻)]
需要讓瀏覽器首先能找到這臺電腦 ip 才可以訪問這臺電腦的數據資源
需要綁定電腦的ip地址

4.將網站服務設置成監聽模式

等待瀏覽器鏈接

tcp_server_socket.listen(128)

網站服務

    while True:        """        new_socket 負責向瀏覽器發送數據的        client_addr 記錄當前鏈接電腦的信息(ip port)         """        new_socket, client_addr = tcp_server_socket.accept()        service_client(new_socket)        # 使用new_socket向瀏覽器發送數據

啟動程序

if __name__ == "__main__":    main()

運行代碼

出現亂碼,可以把utf-8改為GBK

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/123625.html

相關文章

  • 從能做什么到如何去做,一文帶你快速掌握Python編程基礎與實戰

    摘要:本文的分享主要圍繞以下幾個方面能做什么常見應用場景介紹如何學習語法基礎實戰面向對象編程實戰練熟基礎小游戲項目的實現與實戰一能做什么一種編程語言往往可以應用于多方面,有些方面比較常用,有些方面極為常用。比如表示是一個空列表。 摘要:Python語言的教程雖然隨處可見,但是忙于日常業務/學習的你或許:一直想要找個時間學一點,但是又不知道該從何下手?本文將從Python能做什么,如何學習Py...

    BLUE 評論0 收藏0
  • nodeJS實現基于Promise爬蟲 定時發送信息到指定郵件

    摘要:也就是說,我的篇文章的請求對應個實例,這些實例都請求完畢后,執行以下邏輯他的目的在于對每一個返回值這個返回值為單篇文章的內容,進行方法處理。 英國人Robert Pitt曾在Github上公布了他的爬蟲腳本,導致任何人都可以容易地取得Google Plus的大量公開用戶的ID信息。至今大概有2億2千5百萬用戶ID遭曝光。 亮點在于,這是個nodejs腳本,非常短,包括注釋只有71行。 ...

    xuweijian 評論0 收藏0
  • python爬蟲抓取純靜態網站及其資源

    摘要:下面跟大家詳細分享一下寫爬蟲抓取靜態網站的全過程。而我們上面說的元字符都代表一定的規則和占據一定的字符。 遇到的需求 前段時間需要快速做個靜態展示頁面,要求是響應式和較美觀。由于時間較短,自己動手寫的話也有點麻煩,所以就打算上網找現成的。 中途找到了幾個頁面發現不錯,然后就開始思考怎么把頁面給下載下來。 由于之前還沒有了解過爬蟲,自然也就沒有想到可以用爬蟲來抓取網頁內容。所以我采取的辦...

    daydream 評論0 收藏0
  • 「真?全棧之路」Web前端開發后端指南

    前言 在若干次前的一場面試,面試官看我做過python爬蟲/后端 的工作,順帶問了我些后端相關的問題:你覺得什么是后端? 送命題。當時腦瓦特了,答曰:邏輯處理和數據增刪改查。。。 showImg(https://user-gold-cdn.xitu.io/2019/4/24/16a4ed4fc8c18078); 當場被懟得體無完膚,羞愧難當。事后再反思這問題,結合資料總結了一下。發現自己學過的Re...

    chuyao 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<