不用伺服器也能跑的框架 wojilu 續篇

2021-09-06 03:42:00 字數 1604 閱讀 8889

首先,感謝各位看了上次那篇不用伺服器也能跑的框架-wojilu

首先請看一下這篇博文對iis的原理的解釋:【感謝原作者的文章】iis工作原理

摘錄一段原文:

當伺服器接收到乙個 http請求的時候,iis 首先需要決定如何去處理這個請求(note:伺服器處理乙個.htm頁面和乙個.aspx頁面肯定是不一樣的麼)。那iis依據什麼去處理呢?―― 根據檔案的字尾名。

從本質上講,asp.net 主要是由一系列的類組成,這些類的主要目的就是將http請求轉變為對客戶端的響應。httpruntime類是asp.net的乙個主要入口,它有乙個 稱作 processrequest 的方法,這個方法以乙個 httpworkerrequest 類作為引數。httpruntime 類幾乎包含著關於單個 http請求的所有資訊:所請求的檔案、伺服器端變數、querystring、http 頭資訊 等等。asp.net 使用這些資訊來載入、執行正確的檔案,並且將這個請求轉換到輸出流中,一般來說,也就是html頁面。

以上兩段摘自原文,不是本人原創。

下面畫了個很簡單的圖,來看看iis和瀏覽器的互動,只是簡單的圖形,大體的意思:

iis大體幹的活,就是看看你要什麼,然後讓具體的程式做點你要的東西給你。如果有乙個jsp_isapi.dll的話,估計你可以用iis來請求乙個jsp的頁面了。(感謝上次朋友的指正,jsp是tomcat)。

然後看看wojilu的執行方式吧。

【瀏覽器將www.magicdict.com 轉換為http協議】mock這個類就是幹這個的,他將乙個**,模擬成了http協議的標準格式,所以,wojilu可以跑在桌面上。

由於我們的要求就是乙個aspx,所以,我們也不需要iis為我們選擇處理aspx程式了,isapi的工作,直接由wojilu系統接管了。 我們不需要選擇,wojilu直接讓wojilu的頁面做成流程製作頁面了。頁面製作流程,其實就是wojilu完全控制的一套體系,裡面有大量拼接html字串的工作,這樣的話,aspnet也可以省略了。【你想象一下,如果來了乙個請求,你可以讓aspnet系統做乙個html頁面,你也可以手動返回乙個

hello wordl

字串.如果你選擇了後者,恭喜你,基本上aspnet系統頁面做成也被你跳過去了。

【當然,session控制什麼的,我不知道是iis的機能還是asp的機能,如果session控制等等是iis機能的話,可能完全擺脫iis還有很多事情要做】

當然,完全擺脫iis和asp,這個很難很難。

演示裡面,只是返回了乙個html的文字列,最後還是需要瀏覽器來表示畫面的。如果你只是為了抓取資料,可以不用瀏覽器。

其實想想看,瀏覽器,通過標準http協議,向iis要東西。當然,瀏覽器只要要到了東西,不管是誰給它的。如果你製作的程式能夠滿足瀏覽器的要求,iis就沒有什麼事情可以幹了。瀏覽器要乙個html的文字串,你的東西能給它乙個html的字串,你的程式就完全可以代替iis了。網路應用的全部就只有 request和response兩個方法,其他都是浮雲。

簡單的伺服器框架

最近一段時間不是很忙,就寫了乙個自己的遊戲伺服器框架雛形,很多地方還不夠完善,但是基本上也算是能夠跑起來了。我先從上層結構說起,一直到實現細節吧,想起什麼就寫什麼。第一部分 伺服器邏輯 伺服器這邊簡單的分為三個部分,客戶端的連線首先到達閘道器伺服器,閘道器這裡有個執行緒用來監聽來自與客戶端的連線,然...

伺服器基本框架

模組單個伺服器程式 伺服器機群 i o處理單元 處理客戶鏈結,讀寫網路資料 作為接入伺服器,實現負載均衡 網路儲存單元 本地資料庫 檔案或快取 資料庫服務 請求佇列 各單元之間的通訊方式 各伺服器之間的永久tcp連線 請求佇列是各單元之間的通訊方式的抽象,通常被實現為池的一部分。對於伺服器機群而言,...

選定伺服器語言,構建伺服器框架

1 語言 python 2 python的安裝 我選擇的是 python 3.3.2.msi 3 搭建python的flask框架 1 框架選擇 我們選擇的是python中的flask框架,flask是乙個使用python編寫的輕量級web應用框架。基於werkzeug wsgi工具箱和jinja2...