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

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

系統 1738 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條評論
主站蜘蛛池模板: 宁城县| 鄄城县| 双流县| 临泽县| 桃江县| 房产| 辽宁省| 内乡县| 弥勒县| 历史| 平顶山市| 靖安县| 东至县| 山西省| 正定县| 武鸣县| 远安县| 吉木萨尔县| 祁东县| 时尚| 旌德县| 沂水县| 绥棱县| 通城县| 云林县| 台江县| 阜平县| 临夏市| 南乐县| 隆安县| 嘉峪关市| 合水县| 英山县| 凤城市| 霞浦县| 瑞安市| 上虞市| 通渭县| 闽侯县| 连平县| 长海县|