中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么搭建Web服務器

發布時間:2021-10-26 17:26:28 來源:億速云 閱讀:220 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“怎么搭建Web服務器”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“怎么搭建Web服務器”這篇文章吧。

先說首要問題:Web 服務器是什么?

怎么搭建Web服務器

簡而言之,它是一個運行在一個物理服務器上的網絡服務器(啊呀,服務器套服務器),等待客戶端向其發送請求。當它接收請求后,會生成一個響應,并回送至客戶端。客戶端和服務端之間通過  HTTP 協議來實現相互交流。客戶端可以是你的瀏覽器,也可以是使用 HTTP 協議的其它任何軟件。

最簡單的 Web 服務器實現應該是什么樣的呢?這里我給出我的實現。這個例子由 Python 寫成,即使你沒聽說過  Python(它是一門超級容易上手的語言,快去試試看!),你也應該能夠從代碼及注釋中理解其中的理念:

import socket HOST, PORT = '', 8888 listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) listen_socket.bind((HOST, PORT)) listen_socket.listen(1) print 'Serving HTTP on port %s ...' % PORT while True:     client_connection, client_address = listen_socket.accept()     request = client_connection.recv(1024)     print request     http_response = """\ HTTP/1.1 200 OK Hello, World! """     client_connection.sendall(http_response)     client_connection.close()

將以上代碼保存為 webserver1.py,或者直接從 GitHub 上下載這個文件。然后,在命令行中運行這個程序。像這樣:

$ python webserver1.py Serving HTTP on port 8888 …

現在,在你的網頁瀏覽器的地址欄中輸入 URL:http://localhost:8888/hello  ,敲一下回車,然后來見證奇跡。你應該看到“Hello, World!”顯示在你的瀏覽器中,就像下圖那樣:

怎么搭建Web服務器

說真的,快去試一試。你做實驗的時候,我會等著你的。

完成了?不錯!現在我們來討論一下它實際上是怎么工作的。

首先我們從你剛剛輸入的 Web 地址開始。它叫 URL,這是它的基本結構:

怎么搭建Web服務器

URL 是一個 Web 服務器的地址,瀏覽器用這個地址來尋找并連接 Web 服務器,并將上面的內容返回給你。在你的瀏覽器能夠發送 HTTP  請求之前,它需要與 Web 服務器建立一個 TCP 連接。然后會在 TCP 連接中發送 HTTP 請求,并等待服務器返回 HTTP  響應。當你的瀏覽器收到響應后,就會顯示其內容,在上面的例子中,它顯示了“Hello, World!”。

我們來進一步探索在發送 HTTP 請求之前,客戶端與服務器建立 TCP  連接的過程。為了建立鏈接,它們使用了所謂“套接字socket”。我們現在不直接使用瀏覽器發送請求,而在命令行中使用 telnet 來人工模擬這個過程。

在你運行 Web 服務器的電腦上,在命令行中建立一個 telnet 會話,指定一個本地域名,使用端口 8888,然后按下回車:

$ telnet localhost 8888 Trying 127.0.0.1 … Connected to localhost.

這個時候,你已經與運行在你本地主機的服務器建立了一個 TCP 連接。在下圖中,你可以看到一個服務器從頭開始,到能夠建立 TCP 連接的基本過程。

怎么搭建Web服務器

在同一個 telnet 會話中,輸入 GET /hello HTTP/1.1,然后輸入回車:

$ telnet localhost 8888 Trying 127.0.0.1 … Connected to localhost. GET /hello HTTP/1.1 HTTP/1.1 200 OK Hello, World!

你剛剛手動模擬了你的瀏覽器(的工作)!你發送了 HTTP 請求,并且收到了一個 HTTP 應答。下面是一個 HTTP 請求的基本結構:

怎么搭建Web服務器

HTTP 請求的***行由三部分組成:HTTP  方法(GET,因為我們想讓我們的服務器返回一些內容),以及標明所需頁面的路徑/hello,還有協議版本。

為了簡單一些,我們剛剛構建的 Web 服務器完全忽略了上面的請求內容。你也可以試著輸入一些無用內容而不是“GET /hello  HTTP/1.1”,但你仍然會收到一個“Hello, World!”響應。

一旦你輸入了請求行并敲了回車,客戶端就會將請求發送至服務器;服務器讀取請求行,就會返回相應的 HTTP 響應。

下面是服務器返回客戶端(在上面的例子里是 telnet)的響應內容:

怎么搭建Web服務器

我們來解析它。這個響應由三部分組成:一個狀態行 HTTP/1.1 200 OK,后面跟著一個空行,再下面是響應正文。

HTTP 響應的狀態行 HTTP/1.1 200 OK 包含了 HTTP 版本號,HTTP 狀態碼以及 HTTP  狀態短語“OK”。當瀏覽器收到響應后,它會將響應正文顯示出來,這也就是為什么你會在瀏覽器中看到“Hello, World!”。

以上是“怎么搭建Web服務器”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凉城县| 英德市| 阿瓦提县| 阿鲁科尔沁旗| 衡东县| 获嘉县| 新营市| 新沂市| 阳谷县| 邵阳市| 巴南区| 电白县| 韶山市| 勐海县| 怀化市| 泰来县| 清水县| 吉首市| 天台县| 清原| 利川市| 徐水县| 百色市| 延安市| 仙居县| 汝城县| 施甸县| 横山县| 二手房| 张家口市| 成武县| 电白县| 改则县| 班玛县| 根河市| 新干县| 永春县| 大连市| 鸡东县| 紫阳县| 洪江市|