更新時間:2020-12-04 17:49:09 來源:動力節點 瀏覽6458次
很多人都知道Web Server,但說到HTTP Server卻很少有人知道,那么HTTP Server是什么呢?一般來說,HTTP Server 也是我們常說的Web服務器,大名鼎鼎的 Apache,還有微軟的 IIS (Internet Information Server),開源領域的有 Lighttpd 和最近風頭正勁的 Nginx 都是典型的Web服務器。
HttpServer類實現一個簡單的HTTP服務器。HttpServer綁定到IP地址和端口號,并偵聽此地址上來自客戶端的傳入TCP連接。該子類HttpsServer實現了一個處理HTTPS請求的服務器。Web服務器傳送(serves)頁面使瀏覽器可以瀏覽,然而服務器提供的是客戶端應用程序可以調用(call)的方法(methods)。確切一點,你可以說:Web服務器專門處理HTTP請求。
一個或多個HttpHandler對象必須與服務器關聯才能處理請求。每個此類HttpHandler都注冊有一個根URI路徑,該路徑表示應用程序或服務在此服務器上的位置。處理程序到HttpServer的映射由HttpContext對象封裝。HttpContext是通過調用創建的createContext(String,HttpHandler)。找不到任何處理程序的任何請求都會被404響應拒絕。通過提供對象,可以在該對象外部進行線程管理 Executor。如果未提供,則使用默認實現。
下面是有 Node.js 寫的一個最簡單的 HTTP server// 文件名 index.js
// 使用 node index.js 可運行本程序
var http = require('http')
var server = http.createServer( function (request, response){
response.end('這是頁面內容,你請求的路徑是:' + request.url)
})
server.listen(8080, function(){
console.log("正在監聽 %s 端口", 8080);
});
你不用看懂這段程序,你只需要知道兩件事情:
1. 這段程序監聽了當前機器的 8080 端口。
2. 一旦外部訪問當前機器的 8080 端口,這段程序就會返回一段文字。
這就是一個最簡單的 HTTP server。
提供 HTTP 服務的 server 分為兩類。
1. 靜態文件服務器這種服務器簡單地根據訪問路徑,返回對應的文件。比如用戶訪問 http:// 123.123.123.123:8080/a/b/c/d.html,那么這種服務器就會在網站根目錄找到 a/b/c/d.html 文件,原樣返回給用戶。
2. 動態內容服務器這種服務器返回的內容一般不是文件,而是動態生成的字符串(比如從數據庫中獲取的字符串)。比如用戶訪問 http:// http://weibo.com/home,那么這種 http://weibo.com 的服務器則會返回當前用戶最新的微博消息。顯然每個用戶得到的內容是不一樣的。
Web服務器可以解析(handles)HTTP協議。當Web服務器接收到一個HTTP請求(request),會返回一個HTTP響應(response),例如送回一個HTML頁面。為了處理一個請求(request),Web服務器可以響應(response)一個靜態頁面或圖片,進行頁面跳轉(redirect),或者把動態響應(dynamic response)的產生委托(delegate)給一些其它的程序例如CGI腳本,JSP(JavaServer Pages)腳本,servlets,ASP(Active Server Pages)腳本,服務器端(server-side)JavaScript,或者一些其它的服務器端(server-side)技術。無論它們(譯者注:腳本)的目的如何,這些服務器端(server-side)的程序通常產生一個HTML的響應(response)來讓瀏覽器可以瀏覽。
講到這里,對于HTTP Server是什么的問題就相當明朗了,HTTP Server實際上就是Web服務器,HTTP Server的由來實際上是因為Web服務器可以解析(handles)HTTP協議。想深入學習Web服務器的小伙伴可以觀看本站的Tomcat服務器教程,里面對Apache和 IIS都有很詳細的介紹。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習