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

資訊專欄INFORMATION COLUMN

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

3fuyu / 2984人閱讀

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

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

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

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

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

通過獲取的參數(shù)取服務(wù)器上找到相應(yīng)的靜態(tài)資源(這里只說靜態(tài)資源,動(dòng)態(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/37757.html

相關(guān)文章

  • python 和 ruby的對(duì)比

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

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

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

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

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

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

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

    lucas 評(píng)論0 收藏0
  • 小型的編程項(xiàng)目有哪些值得推薦?這本神書寫了 22 個(gè),個(gè)個(gè)了不得

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

    haitiancoder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<