成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python實現(xiàn)web服務(wù)器

Darkgel / 2930人閱讀

摘要:剛好看了一下,就想著用實現(xiàn)一下服務(wù)器的過程。創(chuàng)建,監(jiān)聽端口可以自設(shè)解析協(xié)議中的獲取你想要的參數(shù)通過獲取的參數(shù)取服務(wù)器上找到相應(yīng)的靜態(tài)資源這里只說靜態(tài)資源,動態(tài)的下一篇再說組織協(xié)議的通過端口返回給客服端

本想寫一篇關(guān)于http->nginx->php這個過程中數(shù)據(jù)是怎么傳輸?shù)奈恼拢肓税胩?,實在沒有心情去寫。剛好看了一下python,就想著用python實現(xiàn)一下web服務(wù)器的過程。這個很簡單,目前只支持靜態(tài)文件的加載,動態(tài)語言就要接入fastcgi了(目前還在看fastcgi,下一版本更新吧)。以前沒寫過python也是邊寫邊查,好多東西用的不是特別好,還有,可以在這個基礎(chǔ)上改動,可以支持access.log,多server配置。這里就不寫了。

其實過程很簡單,nginx大體也是這個邏輯(但是,nginx內(nèi)部就復(fù)雜多了)。

創(chuàng)建socket,監(jiān)聽80端口(可以自設(shè))

解析http協(xié)議中的request(獲取你想要的參數(shù))

通過獲取的參數(shù)取服務(wù)器上找到相應(yīng)的靜態(tài)資源(這里只說靜態(tài)資源,動態(tài)的下一篇再說)

組織http協(xié)議的response

通過80端口返回給客服端

#/usr/bin/python
import socket
import sys
import os
from thread import *

HOST = "";PORT = 8887

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "Socket created"

try:
    s.bind((HOST, PORT))
except socket.error , msg:
    print "Bind failed. Error Code : " + str(msg[0]) + " Message " + msg[1]
    sys.exit()

print "Socket bind complete"

s.listen(10)

print "Socket now listening"

def assces_log(request):
    fp = open("http.log", "aw")
    fp.write(request+"
")
    fp.close()

def parse_request(request):
    request = request.splitlines()
    line = request[0]
    line = line.split();
    dict_request = {"method":line[0], "path":line[1], "version":line[2]}
    return dict_request

while True:
    conn, addr = s.accept()
    request = conn.recv(1024)
    print request
    print "
"

    dist_request = parse_request(request)
    path = dist_request["path"]
    path = os.getcwd() + path

    if os.path.isfile(path):
        if os.path.exists(path):
            fp = open(path, "r")
            reply = fp.read()
            fp.close()
            response_errno = 200
            response_msg = "OK"
        else:
            reply = "Not found page"
            response_errno = 404
            response_msg = "Not found"
    else:
        reply = "Forbidden"
        response_errno = 403
        response_msg = "Forbidden"

    response = "HTTP/1.1 " + str(response_errno) + " " + response_msg + "
"
    response += "
"
    response += reply
    print response

    assces_log(request)

    conn.sendall(response)
    conn.close()

s.close()


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39226.html

相關(guān)文章

  • python 和 ruby的對比

    摘要:的解析器實現(xiàn)更成熟,第三方庫質(zhì)量高解析器盡管已經(jīng)有了很大的性能提升和很多新的功能,但是從源代碼實現(xiàn)的角度來說,基本上是通過在源代碼上打來增加功能的。相對而言,解析器更成熟,也比較穩(wěn)定。 最近在考慮學習一門后端語言,在ruby和python直接猶豫,然后自己做了一些對比,希望能幫到有同樣問題的你。 一、異同對比選擇1、Python和ruby的相同點: 都強調(diào)語法簡單,都具有更一般的表達...

    ghnor 評論0 收藏0
  • Java Python 和Nodejs在web開發(fā)方面的簡單比較

    摘要:在做數(shù)據(jù)分析和人工智能方面也有很多可以直接使用的算法庫。各方面都能找到優(yōu)秀的組件。但開發(fā)起來復(fù)雜一些,更適合有一定規(guī)模的團隊采用。 對語言之間優(yōu)勢這個問題,可以寫幾本書來具體闡述. 我嘗試簡單地說一點。不見得對,也不可能完整,僅供參考。 互聯(lián)網(wǎng)興起,靜態(tài)頁面不能滿足復(fù)雜的交互需求. 出現(xiàn)了動態(tài)技術(shù).史前時期動態(tài)Web 開發(fā)多采用CGI 技術(shù)來實現(xiàn). CGI 將腳本作為單獨的進程運行, ...

    Riddler 評論0 收藏0
  • Java Python 和Nodejs在web開發(fā)方面的簡單比較

    摘要:在做數(shù)據(jù)分析和人工智能方面也有很多可以直接使用的算法庫。各方面都能找到優(yōu)秀的組件。但開發(fā)起來復(fù)雜一些,更適合有一定規(guī)模的團隊采用。 對語言之間優(yōu)勢這個問題,可以寫幾本書來具體闡述. 我嘗試簡單地說一點。不見得對,也不可能完整,僅供參考。 互聯(lián)網(wǎng)興起,靜態(tài)頁面不能滿足復(fù)雜的交互需求. 出現(xiàn)了動態(tài)技術(shù).史前時期動態(tài)Web 開發(fā)多采用CGI 技術(shù)來實現(xiàn). CGI 將腳本作為單獨的進程運行, ...

    Amio 評論0 收藏0
  • [零基礎(chǔ)學python]python開發(fā)框架

    摘要:軟件開發(fā)者通常依據(jù)特定的框架實現(xiàn)更為復(fù)雜的商業(yè)運用和業(yè)務(wù)邏輯。所有,做開發(fā),要用一個框架。的性能是相當優(yōu)異的,因為它師徒解決一個被稱之為問題,就是處理大于或等于一萬的并發(fā)。 One does not live by bread alone,but by every word that comes from the mouth of God --(MATTHEW4:4) 不...

    lucas 評論0 收藏0
  • 小型的編程項目有哪些值得推薦?這本神書寫了 22 個,個個了不得

    摘要:電子表格使用語言電子表格是辦公軟件的必備,我們最熟知的是微軟的。文中用框架來實現(xiàn)一個簡單的電子表格,所用代碼僅行。 showImg(https://segmentfault.com/img/remote/1460000019770011); 本文原創(chuàng)并首發(fā)于公眾號【Python貓】,未經(jīng)授權(quán),請勿轉(zhuǎn)載。 原文地址:https://mp.weixin.qq.com/s/Ob... 今天,...

    haitiancoder 評論0 收藏0

發(fā)表評論

0條評論

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