C接下來的TinyHttpD

2021-10-19 08:56:29 字數 1736 閱讀 7291

起因:在看計算機網路時,剛好在leetcode買了一本《網路是怎樣連線的》,越發覺得要看協議的應用、server的實現。

過程:試過python的socket模組還有flask與django,由於語言太過於抽象(高階,不接近底層實現)而造成無法細緻理解,故在code-sheep推薦下來讀tinyhttpd,同時學習c\cweb

環境:wsl-2下安裝號各種c依賴

參考: (「」tinyhttpd實戰一:設定虛擬機器環境,執行tinyhttpd「)

先跑起來

安裝,包,當然gcc gbd build-essential

sudo

apt-get update

sudo

apt-get

install geany

sudo

apt-get

install

make

sudo

apt-get

install gcc

修改makefile檔案(根部不懂、好好學一下吧)

htdocs中的cgi檔案第一行的#!/usr/bin/perl -tw 設為虛擬機器上的perl位置(用which perl查詢)

比如我的就是#!/usr/bin/perl

然後修改htdocs中檔案許可權

cd htdocs

sudo

chmod 600 index.html

sudo

chmod 764 color.cgi check.cgi

而後在tinyhttpd目錄下直接make

如果出現make: nothing to be done for `all』

則make clean 而後再次make

執行 ./httpd

最後在瀏覽器中輸入localhost:埠號

用宿主的browser訪問相應的 localhost 即可

這樣,wsl裡的tinyhttpdserver就已經跑起來了

cgi本意是通用閘道器介面,實際上是乙個生成響應內容的指令碼程式。

比如伺服器接收到來自伺服器的請求,它可以選擇把請求傳遞給乙個cgi程式,由它來根據請求生成內容,cgi程式把生成的內容返回給伺服器,伺服器再把這個內容返回給客戶端。伺服器程式只負責處理請求,不負責處理內容。

我們通過瀏覽器訪問乙個**,會傳送http請求給http 伺服器,如果請求的是乙個靜態的頁面或,伺服器會直接返回結果給瀏覽器。但如果要完成乙個動態的請求,比如需要查詢資料庫這樣的操作,伺服器會執行乙個單獨的程式來執行,這個程式處理完成後會把結果轉化為伺服器(或者瀏覽器)可以識別的格式輸出。

cgi現在很少使用了,目前主流的webserver技術大多基於jsp

接下來的打算

接下來,一方面要趕緊測試提速的晶元和繼續typeb的coding,另一方面,比如晚上我就想寫寫基本的介面,從rs 232開始吧。今天下午寫了個新的指令碼函式,就是之前的生成序列的函式的拓展,新增了進製,和位寬的支援,比如現在已經支援hex dec oct bin 這4種進製數的輸入,接著新增了位寬,...

接下來的KindEditor開發計畫

接下來編輯器要分開發展,乙個方向是繼續完善3.x系列,另乙個方向是新一代的編輯器4.0。3.x的發展優先度高於4.0,4.0目前處於構思階段,重新設計底層框架。b 3.x系列要實現的功能 b 1.細節功能的持續完善 2.修正 3.undo redo改善 4.檔案上傳和管理 file manager外...

接下來幾天的訓練計畫

前幾天做一些模擬賽時,被一些基礎題卡了,反思一下,是自己基礎題不過關,想要在acm路上走的越來越遠,必須打好基礎。做了兩節後,發現usaco上的題正好練基礎,在去艾教那裡培訓之前還有半個月的時間,夠打好基礎了。7.15 模擬練 12 30 5 30 晚上爭取可以補兩道題 7.16 cccc比賽 一天...