課程
/計算機基礎
/計算機網絡
/【計算機網絡篇】從0到1 實現HTTP服務器開發
哥,咱寫的服務器,你怎么能直接在這里面處理業務代碼呢?我想看的是服務器把請求轉發給腳本文件,腳本文件處理完的結果返回給服務器,服務器返回給客戶端。
2019-10-20
源自:【計算機網絡篇】從0到1 實現HTTP服務器開發 5-6
正在回答
這個問題挺好的,先給同學點個贊,這里可以歸納為兩個問題,我們捋一下。
HTTP服務器是否應該處理HTTP業務?
HTTP應該怎么轉發請求到腳本應用?
首先第一個問題,HTTP服務器是否應該處理HTTP業務?
要看什么性質的HTTP服務器,有專門做代理的,比如Nginx,也有應用服務器Apache,這些都是HTTP服務器,他們可以處理HTTP請求,也可以將HTTP請求轉發給后端應用,當然主要功能是轉發請求。
除了這類HTTP服務器,我們還可以看到嵌在Web框架中的HTTP服務器,比如Django、Tornado等等,這些嵌進去的,也是HTTP服務器。
我們常見的Nginx、Apache,他們一般將HTTP請求轉發到后端應用,但不代表他們不處理業務邏輯,事實上Nginx也有做HTTP的業務處理,比如Nginx 404行為,Nginx默認頁等等,這些都是Nginx處理的業務邏輯。
而這些行為,在原理上看來,都是和本課程一樣的。
第二個問題,HTTP應該怎么轉發請求到腳本應用?
首先這里需要明確一點,絕大多數的在代理服務器后面的應用,當暴露端口的時候也是一種HTTP服務(除了一些用unix socket、wsgi、fastcgi等協議啟動的),對于轉發的過程,如果采用了協議,那么就通過協議組件去把數據封裝起來發送給應用,如果直接暴露端口的話,那就是直接轉發。
這里需要理解一點的就是,不管是經過協議、還是經過端口暴露的方式,后端應用如果是基于web框架去開發的話,都需要按照報文格式去把報文解析出來,然后做處理、再返回,所以在應用上,也會做一次HTTP請求的分析。
以上。
相信通過這個解答,同學可以對HTTP服務器有個深刻的認識,希望可以給你解答這個問題。
舉報
快速&系統 在實踐中掌握計算機網絡編程基礎
3 回答POST請求怎么沒有對請求路徑的處理?
1 回答老師您好,我這邊調試發現,程序似乎陷入了server端監聽請求的死循環中
1 回答沒有寫入應答消息頭“Access-Control-Allow-Origin”鍵值對,但是都是訪問的本地環回地址127.0.0.1,端口號也不變,為什么post請求還是失效,服務端消息能發送,但是瀏覽器數據不顯示
1 回答使用makefile關聯套接字的好處是什么?
1 回答老師,web2.0就是指2015年發布的http2.0協議的意思吧
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-10-22
這個問題挺好的,先給同學點個贊,這里可以歸納為兩個問題,我們捋一下。
HTTP服務器是否應該處理HTTP業務?
HTTP應該怎么轉發請求到腳本應用?
首先第一個問題,HTTP服務器是否應該處理HTTP業務?
要看什么性質的HTTP服務器,有專門做代理的,比如Nginx,也有應用服務器Apache,這些都是HTTP服務器,他們可以處理HTTP請求,也可以將HTTP請求轉發給后端應用,當然主要功能是轉發請求。
除了這類HTTP服務器,我們還可以看到嵌在Web框架中的HTTP服務器,比如Django、Tornado等等,這些嵌進去的,也是HTTP服務器。
我們常見的Nginx、Apache,他們一般將HTTP請求轉發到后端應用,但不代表他們不處理業務邏輯,事實上Nginx也有做HTTP的業務處理,比如Nginx 404行為,Nginx默認頁等等,這些都是Nginx處理的業務邏輯。
而這些行為,在原理上看來,都是和本課程一樣的。
第二個問題,HTTP應該怎么轉發請求到腳本應用?
首先這里需要明確一點,絕大多數的在代理服務器后面的應用,當暴露端口的時候也是一種HTTP服務(除了一些用unix socket、wsgi、fastcgi等協議啟動的),對于轉發的過程,如果采用了協議,那么就通過協議組件去把數據封裝起來發送給應用,如果直接暴露端口的話,那就是直接轉發。
這里需要理解一點的就是,不管是經過協議、還是經過端口暴露的方式,后端應用如果是基于web框架去開發的話,都需要按照報文格式去把報文解析出來,然后做處理、再返回,所以在應用上,也會做一次HTTP請求的分析。
以上。
相信通過這個解答,同學可以對HTTP服務器有個深刻的認識,希望可以給你解答這個問題。