Python探索之實(shí)現(xiàn)一個(gè)簡(jiǎn)單的HTTP服務(wù)器
Python標(biāo)準(zhǔn)庫(kù)中的BaseHTTPServer模塊實(shí)現(xiàn)了一個(gè)基礎(chǔ)的HTTP服務(wù)器基類(lèi)和HTTP請(qǐng)求處理類(lèi)。這在文章python探索之BaseHTTPServer-實(shí)現(xiàn)Web服務(wù)器介紹中進(jìn)行了相關(guān)的介紹。然而,BaseHTTPServer模塊中并沒(méi)有定義相關(guān)的請(qǐng)求方法,諸如GET、HEAD、POST等。在BaseHTTPServer模塊的基礎(chǔ)上,Python標(biāo)準(zhǔn)庫(kù)中的SimpleHTTPServer模塊實(shí)現(xiàn)了簡(jiǎn)單的GET、HEAD請(qǐng)求。
在該模塊中,它沿用了BaseHTTPServer模塊中實(shí)現(xiàn)的HTTPServer服務(wù)器,這里就不再贅述。而請(qǐng)求處理類(lèi)則是繼承了BaseHTTPServer模塊中的BaseHTTPRequestHandler類(lèi)。SimpleHTTPServer模塊實(shí)現(xiàn)了具有GET、HEAD請(qǐng)求方法的HTTP通信服務(wù)。根據(jù)文章python探索之BaseHTTPServer-實(shí)現(xiàn)Web服務(wù)器介紹中的介紹,只需要在請(qǐng)求處理類(lèi)中定義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()
在這個(gè)方法中,它調(diào)用了send_head()方法來(lái)返回一個(gè)響應(yīng)。send_head()方法會(huì)調(diào)用send_response()、send_header()、send_error()方法等設(shè)置響應(yīng)報(bào)文等。
do_HEAD()
do_HEAD()方法的源碼如下:
def do_HEAD(self): """Serve a HEAD request.""" f = self.send_head() if f: f.close()
do_HEAD()方法和do_GET()方法的實(shí)現(xiàn)類(lèi)似。
測(cè)試?yán)?br />
SimpleHTTPServer模塊還提供了一個(gè)測(cè)試函數(shù)。只需要在命令行中運(yùn)行如下代碼:
python SimpleHTTPServer.py # SimpleHTTPServer.py指代Python標(biāo)準(zhǔn)庫(kù)中的SimpleHTTPServer模塊,注意文件位置。
如果在本地環(huán)境中運(yùn)行以上代碼,將會(huì)調(diào)用請(qǐng)求處理類(lèi)的translate_path和list_directory方法展示一個(gè)文件目錄。
然后在瀏覽器中訪(fǎng)問(wèn)127.0.0.1:8000即可查看SimpleHTTPServer.py文件所在目錄下的所有文件。
總結(jié)
以上就是本文關(guān)于Python探索之實(shí)現(xiàn)一個(gè)簡(jiǎn)單的HTTP服務(wù)器的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Python探索之SocketServer詳解、Python編程之Re模塊下的函數(shù)介紹等,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
- 使用 Python 快速實(shí)現(xiàn) HTTP 和 FTP 服務(wù)器的方法
- Python通過(guò)命令開(kāi)啟http.server服務(wù)器的方法
- python探索之BaseHTTPServer-實(shí)現(xiàn)Web服務(wù)器介紹
- Python實(shí)現(xiàn)簡(jiǎn)單的HttpServer服務(wù)器示例
- Python搭建HTTP服務(wù)器和FTP服務(wù)器
- Python實(shí)現(xiàn)批量檢測(cè)HTTP服務(wù)的狀態(tài)
- Python內(nèi)置的HTTP協(xié)議服務(wù)器SimpleHTTPServer使用指南
- 使用Python來(lái)編寫(xiě)HTTP服務(wù)器的超級(jí)指南
- 超簡(jiǎn)單的Python HTTP服務(wù)
相關(guān)文章
Python+numpy實(shí)現(xiàn)矩陣的行列擴(kuò)展方式
今天小編就為大家分享一篇Python+numpy實(shí)現(xiàn)矩陣的行列擴(kuò)展方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Pytest?fixture及conftest相關(guān)詳解
這篇文章主要介紹了Pytest?fixture及conftest相關(guān)詳解,fixture是在測(cè)試函數(shù)運(yùn)行前后,由pytest執(zhí)行的外殼函數(shù),更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-09-09Python實(shí)現(xiàn)數(shù)據(jù)透視表詳解
今天小編就為大家分享一篇用Python實(shí)現(xiàn)數(shù)據(jù)的透視表的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-10-10Python文字截圖識(shí)別OCR工具實(shí)例解析
這篇文章主要介紹了Python文字截圖識(shí)別OCR工具實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Python實(shí)現(xiàn)發(fā)送QQ郵件的封裝
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)發(fā)送QQ郵件的具體代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07