❶ 簡述web伺服器的過程
WEB伺服器也稱為WWW(WORLD
WIDE
WEB)伺服器,主要功能是提供網上信息瀏覽服務。
WWW
是
Internet
的多媒體信息查詢工具,是
Internet
上近年才發展起來的服務,也是發展最快和目前用的最廣泛的服務。正是因為有了WWW工具,才使得近年來
Internet
迅速發展,且用戶數量飛速增長
❷ web後台伺服器是如何工作的
近期准備session,希望能跟大家輕松地分享一些東西,一些常見的場景。比如:web後台伺服器到底是如何工作的。
上網過程對於普通人:首先,他需要一台電腦,然後,他的電腦可以接入網路,最後,他可以打開瀏覽器鍵入自己想要瀏覽的網址,然後就可以上網了。但是對於計算機來講,是一個比較復雜的過程,裡麵包含了信息如何保存,信息如何傳遞以及信息如何展示的過程。所以,針對整個上網過程,我們從前到後,分析一下其中包含的各種技術細節,可能不全,目的是拋磚引玉,希望大家在簡單的流程當中學習更多的東西分享出來,一些基礎知識則當做復習。之前buddy王老吉講過瀏覽器的工作方式,所以本文內容不包含瀏覽器的工作方式,重點在於各種後台服務以及通信層面的分析。
前面說到,用戶瀏覽器中鍵入網址便瀏覽網頁信息,這個網址實際上就是URL,英文全稱是Uniform Resource Locator——統一資源定位符。
完整的、帶有授權部分的普通統一資源標志符語法看上去如下:
協議://用戶名:密碼@子域名.域名.頂級域名:埠號/目錄/文件名.文件後綴?參數=值
協議部分可以是http,https,ftp等協議類型。
前面提到,互聯網上的每個文件都有一個唯一的URL,那麼,到底是如何確認的。前面提到了協議,協議是什麼?比如大家寫信時都需要寫郵編、地址和姓名,便可以通過這種方式將信郵寄到世界上唯一的那個人手裡,填寫的郵編,地址和姓名就是一種協議。協議的價值在於世界上所有的瀏覽器和後台伺服器都需要遵循http這些協議,才能正常進行信息的傳遞。
計算機通信跟人的通信是類似的,也是遵循各種協議的,不同的協議承載著不同的功能。通常,瀏覽器上網使用的是http或者https協議,從網路分層的角度來講,這些協議屬於應用層協議,建立在傳輸層之上。傳輸層跑是什麼協議呢?相信大家都非常熟悉,傳輸層跑的是TCP和UDP協議,再往下就是網路層,網路層上面跑的是IP數據報。每層的功能各不相同,每層的協議也不同,但是一般來講,越往下層,協議會越少,這樣才能化繁為簡,從而支持不同的上層協議。傳輸層協議一般是由操作系統層面支持的,同時還需要跟網路層進行交互(對於物理機來說就是網卡),所以針對我們操作系統之上的程序員來講,新創造的協議都是應用層協議,因為我們的通信都是在傳輸層(TCP和UDP)基礎之上構建的。
http是應用層協議,也就是說,在界面敲下網址那一刻,實際上瀏覽器向伺服器發送了http協議格式的消息,也叫做http請求。http協議是構建在tcp協議之上的,而tcp是可靠的協議,所以http協議無需考慮可靠性,只管傳輸就可以了。
http協議比較簡單,如下所示:
那麼瀏覽器又是如何組織http請求,並且將信息發送的相應伺服器的呢?例如: http://www..com
我們鍵入的僅僅是伺服器域名,但是實際上在網路中我們通信是通過套接字來進行通信的。套接字=IP + 埠,在網路中,IP的作用是用來在網路層進行路由定址,尋找唯一的主機;埠的作用是用來在這個主機中尋找唯一的進程。總體來說,套接字可以用來在網路中確定唯一主機的唯一進程,所以通過套接字我們可以進行通信。
但是問題是上網通過域名來訪問,那麼是如何通過域名來確認唯一主機的唯一後台web伺服器進程的呢?做一個假設,如果我們可以在互聯中提供一個確定的服務,這個服務裡面裝有域名到套接字的映射,上網的人通過這個服務獲取對應域名的套接字,那麼這個問題不就解決了。而實際上,DNS服務原理簡單來說就是剛才假設的方法,服務商通過提供公共的DNS服務,大家上網時便可以查詢到相應域名對應的套接字,通過這個套接字便可以訪問確定的伺服器了。真正的DNS服務其實更為復雜,分為迭代式查詢和遞歸式查詢,兩種方式各有優劣,同時,為了性能,DNS服務通常也配有不同級別的緩存,關於DNS的具體實現有興趣的可以自行查詢資料學習。
總結一下,上網時瀏覽器實際上做了兩件事,第一,通過瀏覽器內置的DNS客戶端,向DNS伺服器發送請求,獲取域名對應套接字;第二,使用套接字發送http請求,獲取數據,然後在瀏覽器端呈現。
另外,DNS服務也需要遵循某種協議才能通信,其協議為DNS協議,其服務固定為53埠,屬於應用層協議。DNS英文為DomainNameSystem。其實DNS服務跟電話簿的工作方式一樣,因為你沒法記得每個人的電話號碼,但是很容易記住每個人的名字。
上網前,我們的計算機裡面什麼都沒有,為何鍵入網址後能在界面顯示出各種各樣的數據?實際上,數據都來自於後台伺服器,所有的數據當然也都存儲在後台伺服器,瀏覽器僅僅請求數據。前面講了,請求數據時,使用套接字加上http請求來獲取數據,後台則必定要提供相應的套接字,接收信息,解析http請求,才能正常的返回客戶端需要的數據。所以,後台伺服器做的工作,第一,綁定套接字,通過該套接字向外提供http服務;第二,解析http請求,根據請求返回響應。
理論上講,我們可以實現自己的http服務,並且解析不同的http請求,返回響應。但是,作為開發者來講,重復造輪子是不推薦的,市面上有多種現成框架供我們選擇。對於java開發者來講,就有tomcat或者jetty,其他語言理論上也有類似的框架。tomcat和jetty幫我們做了什麼呢?實際上最主要的功能還就是接受http請求,針對不同的請求返回響應,當然,他們也提供了更多的高級特性,比如遵循servlet規范,使人們更高效的開發web應用。
總結一下,上網的實際流程在程序員的角度來看,首先需要通過DNS服務解析域名,獲取該域名所在web伺服器應用程序的套接字,然後瀏覽器組裝符合http協議的請求,通過套接字發送給web伺服器,web伺服器解析請求,根據解析結果將需要返回的內容組裝符合http協議的響應,瀏覽器接到響應後,根據http協議解析響應,獲取數據,將數據展示在瀏覽器上。
包含的知識點:DNS協議,HTTP協議,計算機網路知識,後台伺服器實現(tomcat/jetty等)。
❸ web伺服器的工作原理及安裝配置步驟
一、web伺服器的工作原理
1、客戶端發送請求
客戶端(通過瀏覽器)和Web伺服器建立TCP連接,連接建立以後,向Web伺服器發出訪問請求(如get)。
2、伺服器解析請求
Web伺服器對請求按照HTTP協議進行解碼來確定進一步的動作,設計的內容有三個要點:方法(GET)、文檔(/sample.html)、和瀏覽器使用的協議(HTTP/1.1)其中方法告訴伺服器應完動的動作,GET方法的含義很明顯是:伺服器應定位、讀取文件並將它返回給客戶。
3、讀取其它信息(非必須步驟)
Web伺服器根據需要去讀取請求的其它部分。在HTTP/1.1下,客戶還應給伺服器提供關於它的一些信息。元信息可用來描述瀏覽器及其能力,以使伺服器能據此確定如何返回應答。
4、完成請求的動作
若現在沒有錯誤出現,WWW伺服器將執行請求所要求的動作。要獲取(GET)一個文檔,web伺服器在其文檔樹中搜索請求的文件(/sample.html)。這是由伺服器機器上作為操作系統一部分的文件系統完成的。若文件能找到並可正常讀取,則伺服器將把它返回給客戶。
5、關閉文件和網路連接,結束會話。
當文件已被發郵或錯誤已發出後,web伺服器結束整個會話。它關閉打開的的被請求文件,關閉網路埠從而結束網路連接。有關的其它工作則是由客戶端來完成的,包括接收數據,並以用戶可讀的方式呈現出來。這些與伺服器無關。
二、web伺服器的安裝配置過程
以典型的web伺服器Tomcat為例,進行安裝配置。步驟如下:
1、在tomcat官網上下載tomcat安裝版本。
❹ web伺服器工作原理
Step1:用戶在地址欄輸入一個網址,然後點擊回車鍵;
Step2:瀏覽器與伺服器建立TCP連接;
Step3:瀏覽器將用戶的事件按照HTTP協議要求的格式打包成數據包,這個過程的本質就是在待發送緩沖區中有這一段HTTP協議格式的位元組流;
Step4:瀏覽器確認伺服器可寫,將該數據包推入Internet中,最終,該包被遞交到服務端;
Step5:伺服器在接收到該數據包後,以同樣的格式進行解析,獲取客戶端的意圖;
Step6:在獲取了客戶端的意圖之後,伺服器進行分類處理,或是提供某一文件,或是處理相關數據;
Step7:將處理結果裝入緩沖區,或者文檔,或是其他內容;
Step8:伺服器將按照HTTP協議格式,將Step7中的數據進行打包;
Step9:伺服器確定對端可寫,將數據包推入Internet,該包經過網路處理,最終返回至客戶端;
Step10:客戶端拿到包之後,以HTTP協議格式進行解包,然後解析數據;
Step11:客戶端處理相關數據,並且展示在頁面之上。
以上這11步,就是web伺服器最基本的工作原理。通過梳理,我們不難發現,這就是一個簡單的網路通信過程。換句話說,就是一個簡單的發送數據、接受數據、處理數據的過程。更高級的web伺服器,無非也就是將上述的三個基礎內容劃分得更加詳細一點而已。
❺ 「WEB伺服器」是什麼
Web伺服器:
一般指網站伺服器,是指駐留於網際網路上某種類型計算機的程序,可以向瀏覽器等Web客戶端提供文檔。
Web伺服器作用:
1、放置網站文件,讓全世界瀏覽;
2、可以放置數據文件,讓全世界下載。
Web伺服器分類:
1、Apache;
2、Nginx;
3、IIS。
Web伺服器工作原理可分為四個步驟:
連接過程、請求過程、應答過程以及關閉連接。
❻ web伺服器 Nginx
(1)概念
Web伺服器是一台使用HTTP協議與客戶機瀏覽器進行信息交流(因此又稱為HTTP伺服器)、為互聯網客戶提供服務(信息瀏覽,下載資源等)的主機。發展趨勢:從HTML到XML、從有線到無線、從無聲到有聲
1.Linux是架設安全高效Web伺服器的操作系統
架設Web伺服器常見的操作系統:Windows、Linux、Unix。Linux安全性能最高,可以支持多個硬體平台,可以根據不同需求隨意修改、調整與復制各種程序的源碼以及發布在互聯網上,網路功能比較強大。
2.目前主流伺服器:Apache、 Nginx、 IIS
Unix/Linux操作系統下使用最廣泛的免費HTTP伺服器:Apache、Nginx。Windows(NT/2000/2003)操作系統使用ⅡS,綜合使用最多的Web伺服器是 IIs、Apache。
選擇WEB伺服器應考慮的本身特性因素有:性能、安全性、日誌和統計、虛擬主機、代理伺服器、緩沖服務和集成應用程序等。下面介紹目前最主流的三大web伺服器:
① 大型
IIS:
微軟的Internet Information Services (IIS),IIS 允許在互聯網上發布信息,提供了一個圖形界面的管理工具,稱為Internet服務管理器,可用於監視配置和控制Internet服務。IIS是一種Web服務組件,其中包括Web伺服器(網頁瀏覽)、FTP伺服器(文件傳輸)、NNTP伺服器(新聞服務)和SMTP伺服器(郵件傳輸),使得在網路上發布信息很容易。它提供ISAPI(Intranet Server API)作為擴展Web伺服器功能的編程介面,它還提供一個Internet資料庫連接器,可以實現對資料庫的查詢和更新。
Apache:
Apache是世界上用的最多的Web伺服器,源於NCSAhttpd伺服器的補丁(pache 補丁)。它的成功之處主要在於:源代碼開放、有開放的開發隊伍、支持跨平台的應用(可以運行在幾乎所有的Unix、Windows、Linux系統平台上)、可移植性。
② 小型
nginx:
nginx的模塊都是靜態編譯的,對fcgi的支持非常好,在處理鏈接的的方式上nginx支持epoll,支持通用語言介面(如:php、python、perl等),支持正向和反向代理、虛擬主機、url重寫、壓縮傳輸等。
(2)工作原理
當客戶端Web瀏覽器連到伺服器上並請求文件時,伺服器將處理該請求並將文件反饋到該瀏覽器上,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)。Web伺服器主要是處理向瀏覽器發送HTML以供瀏覽,而應用程序伺服器提供訪問商業邏輯的途徑以供客戶端應用程序使用。應用程序伺服器可以管理自己的資源,例如看大門的工作(gate-keeping ties)包括安全(security),事務處理(transaction processing),資源池(resource pooling), 和消息(messaging)。就象Web伺服器一樣,應用程序伺服器配置了多種可擴展(scalability)和容錯(fault tolerance)技術。Web伺服器的工作原理一般可分成如下4個步驟:
① 連接過程:是Web伺服器和其瀏覽器之間所建立起來的一種連接。查看連接過程是否實現,用戶可以找到和打開socket這個虛擬文件,這個文件的建立意味著連接過程這一步驟已經成功建立。
② 請求過程:是Web的瀏覽器運用socket這個文件向其伺服器而提出各種請求。
③ 應答過程:是運用HTTP協議把在請求過程中所提出來的請求傳輸到Web的伺服器,進而實施任務處理,然後運用HTTP協議把任務處理的結果傳輸到Web的瀏覽器,同時在Web的瀏覽器上面展示上述所請求之界面。
④ 關閉連接:是當上一個步驟--應答過程完成以後,Web伺服器和其瀏覽器之間斷開連接之過程。Web伺服器上述4個步驟環環相扣、緊密相聯,邏輯性比較強,可以支持多個進程、多個線程以及多個進程與多個線程相混合的技術。
Web伺服器可以解析HTTP協議。當Web伺服器接收到一個HTTP請求(request),會返回一個HTTP響應(response)。為了處理一個request,Web伺服器可以response一個靜態頁面(HTML頁面)或圖片,進行頁面跳轉(redirect),或把動態響應委託給伺服器端。Web伺服器的代理模型非常簡單。當一個request被送到Web伺服器里來時,它只單純的把request傳遞給可以很好的處理request的程序(伺服器端腳本,如:CGI腳本,JSP腳本,servlets,ASP腳本,伺服器端JavaScript等)。Web伺服器僅僅提供一個可以執行伺服器端程序和返回(程序所產生的)響應的環境,而不會超出職能范圍。伺服器端程序功能通常有:事務處理、資料庫連接、和消息等。雖然Web伺服器不支持事務處理或資料庫連接池,但它可以配置各種策略來實現容錯性、可擴展性(如:負載平衡、緩沖)。集群特徵經常被誤認為僅僅是應用程序伺服器專有的特徵。
(3)配置
如何設置默認文檔;在同一台伺服器上架設多個Web站點;(可以通過改變埠號)創建Web虛擬目錄;
1、了解DNS主機名和IP地址。
如果此WEB伺服器在Internet上,需向ISP申請和注冊此伺服器的DNS主機名和IP地址。如果此伺服器只在企業網內使用,則在內部的DNS伺服器上注冊。
2、打開伺服器文檔,選擇"埠"-"Internet埠",啟用"TCP/ IP埠"。
3、選擇"Internet協議",完成以下選項後,保存文檔。
① 綁定主機名:
A、選擇"是"則您可在"主機名"項中輸入主機別名,WEB用戶可用此別名替代Domino伺服器名訪問WEB伺服器。
B、選擇"否"(預設)則不允許使用別名。
② DNS查詢: 選擇"是"則Domino伺服器查詢發送請求的WEB客戶機的DNS名。
③ Domino日誌文件和資料庫將包含WEB客戶機的DNS主機名: 選擇"否"(預設)則不查詢,Domino日誌文件和資料庫將只包含WEB客戶機的IP地址( 注意:選擇"否"將提高Domino伺服器性能,因為伺服器不使用資源執行DNS查詢 )
④ "允許HTTP客戶瀏覽資料庫":選擇"是"則允許WEB用戶在URL中使用OpenServer命令來顯示伺服器上資料庫列表。選擇"否"(預設)則不允許。但即使WEB用戶不能看到伺服器上資料庫列表,他們仍能打開有許可權訪問的單個資料庫。
4、啟動HTTP任務。在伺服器控制台上,輸入:loap http
小型項目
(1)概念
1、Nginx(俄羅斯程序設計師Igor Sysoev用C語言進行編寫)是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3/SMTP)代理伺服器。
2、特點:佔有內存少(在高連接並發的情況下,Nginx是Apache伺服器不錯的替代品,能夠支持高達 50,000 個並發連接數的響應),並發能力強。
3、中國大陸使用nginx網站用戶有:網路、京東、新浪、網易、騰訊、淘寶等。
4、Nginx代碼完全用C語言從頭寫成,已經移植到許多體系結構和操作系統,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。
5、Nginx有自己的函數庫,並且除了zlib、PCRE和OpenSSL之外,標准模塊只使用系統C庫函數。而且,如果不需要或者考慮到潛在的授權沖突,可以不使用這些第三方庫。
(2)安裝
官網:http://nginx.org/
選擇要安裝的版本:
(3)使用
打開conf/nginx.conf,修改埠號,和主頁根地址為:打包後index.html的目錄
模擬域名配置(本地域名設置):
在瀏覽器地址欄輸入配置好的「域名:埠號」回車:
❼ 簡述在web伺服器中,Apache和PHP的工作流程
那麼php的運行原理就是Apache、PHP、瀏覽器之間的協作過程:
①當用戶在瀏覽器地址中輸入要訪問的PHP頁面文件名,然後回車就會觸發這個PHP請求,並將請求傳送化支持PHP的WEB伺服器(apache)。
②WEB伺服器(apache)接受這個請求,並根據其後綴進行判斷如果是一個PHP請求,WEB伺服器(apache)從硬碟或內存中取出用戶要訪問的PHP應用程序,並將其發送給PHP引擎程序。
③PHP引擎程序將會對WEB伺服器(apache)傳送過來的文件從頭到尾進行掃描並根據命令從後台讀取,處理數據,並動態地生成相應的HTML頁面。
④PHP引擎將生成HTML頁面返回給WEB伺服器(apache)。WEB伺服器(apache)再將HTML頁面返回給客戶端瀏覽器,最後一個完整的頁面基於通過瀏覽器展現在我們眼前。
❽ web伺服器工作過程
WEB伺服器就是用於網站建設的一種伺服器,也稱為www服務(萬維網服務),它是整個網站的發布平台,工作過程就是,當客戶輸入網路地址(網址)過後,客戶機的瀏覽器像WEB伺服器發送調用資源請求,當然這個中間還要經過DNS將網址轉換成WEB伺服器的IP地址。然後WEB伺服器作出回應,然後用戶從伺服器上下載需要的資源使用。 整個過程中使用了HTTP協議(超文本傳輸協議),通常使用的埠是80埠
❾ 簡述WEB伺服器的工作原理.
80埠是為http(hypertext
transport
protocol,超文本傳輸協議)開放的,這是上網沖浪使用最多的協議,主要用於在www(world
wide
web,萬維網)服務上傳輸信息的協議。我們可以通過http地址加「:80」(即常說的「網址」)來訪問網站的,比如<a
href="
http://www.cce.com.cn:80
"
target="_blank">
http://www.cce.com.cn:80
</a>,因為瀏覽網頁服務默認的埠號是80,所以只要輸入網址,不用輸入「:80」。
埠漏洞:有些木馬程序可以利用80埠來攻擊計算機的,比如executor、ringzero等。
操作建議:為了能正常上網沖浪,我們必須開啟80埠。
在windows2000/xp/server2003中要查看埠,可以使用netstat命令:
「開始">"運行」>「cmd」,打開命令提示符窗口。在命令提示符狀態下鍵入「netstat-a-n」,按下回車鍵後就可以看到以數字形式顯示的tcp和udp連接的埠號及狀態.
命令格式:netstat-a-e-n-o-s
-a表示顯示所有活動的tcp連接以及計算機監聽的tcp和udp埠。
-e表示顯示乙太網發送和接收的位元組數、數據包數等。
-n表示只以數字形式顯示所有活動的tcp連接的地址和埠號。
-o表示顯示活動的tcp連接並包括每個連接的進程id(pid)。
-s表示按協議顯示各種連接的統計信息,包括埠號。
關閉埠
比如在windows2000/xp中關閉smtp服務的25埠,可以這樣做:首先打開「控制面板」,雙擊「管理工具」,再雙擊「服務」。接著在打開的服務窗口中找到並雙擊「simplemailtransferprotocol(smtp)」服務,單擊「停止」按鈕來停止該服務,然後在「啟動類型」中選擇「已禁用」,最後單擊「確定」按鈕即可。這樣,關閉了smtp服務就相當於關閉了對應的埠。
開啟埠
如果要開啟該埠只要先在「啟動類型」選擇「自動」,單擊「確定」按鈕,再打開該服務,在「服務狀態」中單擊「啟動」按鈕即可啟用該埠,最後,單擊「確定」按鈕即可。
另外在網路連接屬性中,選擇「tcp/ip協議」屬性,打開高級tcp/ip設置,在選項的那個頁面打開tcp/ip篩選,在出現的設置窗口中也可以根據實現情況設置埠的打開和關閉,默認是未啟用tcp/ip篩選。
❿ 簡述web瀏覽器打開一個web文件的工作過程
web瀏覽器打開一個web文件的工作過程如下:
1、在瀏覽器地址欄中輸入要訪問的主頁的地址;
2、用戶向瀏覽器發送拜訪請求,請求訪問該網站。
3、伺服器收到客戶端的訪問請求;
4、伺服器處理該請求(如果需要處理主頁上的動態文檔然後返回,如果是靜態文檔,則可以直接返回);
5、伺服器在客戶端的瀏覽器上顯示請求的處理結果。
(10)web伺服器工作過程擴展閱讀:
web工作表現形式
1、超文本(超文本)
超文本是一種用於顯示文本和與文本相關的內容的用戶界面方法。目前,超文本通常以電子文檔的形式存在。
文本包含可以鏈接到其他欄位或文檔的超文本鏈接,從而允許從當前閱讀位置直接切換到超文本鏈接指向的文本。
2、超媒體
超媒體是超媒體的縮寫。它是信息瀏覽環境中超文本和多媒體的結合。用戶不僅可以從一個文本跳到另一個文本,還可以激活聲音,顯示圖形甚至播放動畫。
Internet使用超文本和超媒體信息組織方法將信息鏈接擴展到整個Internet。 Web是一種超文本信息系統,其主要概念之一是超文本鏈接。
3、超文本傳輸協議(HTTP,超文本傳輸協議)是Internet上使用最廣泛的網路協議。