日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python探索之實現一個簡單的HTTP服務器

系統 1827 0

Python標準庫中的BaseHTTPServer模塊實現了一個基礎的HTTP服務器基類和HTTP請求處理類。這在文章python探索之BaseHTTPServer-實現Web服務器介紹中進行了相關的介紹。然而,BaseHTTPServer模塊中并沒有定義相關的請求方法,諸如GET、HEAD、POST等。在BaseHTTPServer模塊的基礎上,Python標準庫中的SimpleHTTPServer模塊實現了簡單的GET、HEAD請求。

在該模塊中,它沿用了BaseHTTPServer模塊中實現的HTTPServer服務器,這里就不再贅述。而請求處理類則是繼承了BaseHTTPServer模塊中的BaseHTTPRequestHandler類。SimpleHTTPServer模塊實現了具有GET、HEAD請求方法的HTTP通信服務。根據文章python探索之BaseHTTPServer-實現Web服務器介紹中的介紹,只需要在請求處理類中定義do_GET()和do_HEAD()方法即可。

do_GET()

do_GET()方法的源碼如下:

            
def do_GET(self):
 """Serve a GET request."""
 f = self.send_head()
 if f:
  try:
   self.copyfile(f, self.wfile)
  finally:
   f.close()
          

在這個方法中,它調用了send_head()方法來返回一個響應。send_head()方法會調用send_response()、send_header()、send_error()方法等設置響應報文等。

do_HEAD()

do_HEAD()方法的源碼如下:

            
def do_HEAD(self):
 """Serve a HEAD request."""
 f = self.send_head()
 if f:
  f.close()
          

do_HEAD()方法和do_GET()方法的實現類似。

測試例子

SimpleHTTPServer模塊還提供了一個測試函數。只需要在命令行中運行如下代碼:

            
python SimpleHTTPServer.py # SimpleHTTPServer.py指代Python標準庫中的SimpleHTTPServer模塊,注意文件位置。
          

如果在本地環境中運行以上代碼,將會調用請求處理類的translate_path和list_directory方法展示一個文件目錄。
然后在瀏覽器中訪問127.0.0.1:8000即可查看SimpleHTTPServer.py文件所在目錄下的所有文件。

總結

以上就是本文關于Python探索之實現一個簡單的HTTP服務器的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站:Python探索之SocketServer詳解、Python編程之Re模塊下的函數介紹等,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 台北县| 伊金霍洛旗| 波密县| 昭苏县| 边坝县| 同江市| 长武县| 新化县| 金塔县| 邛崃市| 南京市| 专栏| 南澳县| 黔西| 荥阳市| 阳新县| 盘锦市| 东山县| 马关县| 儋州市| 湖口县| 巴彦县| 马公市| 永德县| 陇川县| 体育| 大埔区| 长海县| 深水埗区| 水城县| 定州市| 高台县| 深水埗区| 长岭县| 太原市| 兴业县| 华宁县| 洛宁县| 鹿邑县| 临澧县| 东明县|