當前位置:首頁 » 網頁前端 » web請求和響應的過程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

web請求和響應的過程

發布時間: 2022-08-21 20:28:43

A. 一次完整的HTTP請求與響應涉及了哪些知識

域名解析 --> 發起TCP的3次握手 --> 建立TCP連接後發起http請求 --> 伺服器響應http請求,瀏覽器得到html代碼 --> 瀏覽器解析html代碼,並請求html代碼中的資源(如js、css、圖片等) --> 瀏覽器對頁面進行渲染呈現給用戶

B. Web伺服器的工作原理: 談談客戶端如何向Web伺服器提出請求,Web伺服器怎樣響應請求,提供服務

一般是
客戶端發送http請求(tcp 80)到伺服器端,tcp連接建立之後,通過http的動作get獲得頁面信息

具體不是一句兩句能說明白的
自己抓包看吧

C. 簡述web瀏覽器與web伺服器交互的過程

TCP協議:用戶發送請求信息,伺服器認證返回信息,用戶再發送指定訪問頁面請求
UDP協議:用戶發送,伺服器接收,直接傳輸數據信息

D. http請求和響應

當瀏覽器向Web伺服器發出請求時,它向伺服器傳遞了一個數據塊,也就是請求信息,HTTP請求信息由3部分組成:
l 請求方法URI協議/版本
l 請求頭(Request Header)
l 請求正文
下面是一個HTTP請求的例子:
GET/sample.jspHTTP/1.1

Accept:image/gif.image/jpeg,*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate

username=jinqiao&password=1234
(1)請求方法URI協議/版本
請求的第一行是「方法URL議/版本」:GET/sample.jsp HTTP/1.1
以上代碼中「GET」代表請求方法,「/sample.jsp」表示URI,「HTTP/1.1代表協議和協議的版本。
根據HTTP標准,HTTP請求可以使用多種請求方法。例如:HTTP1.1目前支持7種請求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。
GET 請求獲取由Request-URI所標識的資源。
POST 在Request-URI所標識的資源後附加新的數據。
HEAD 請求獲取由Request-URI所標識的資源的響應消息報頭。
OPTIONS 請求查詢伺服器的性能,或查詢與資源相關的選項和需求。
PUT 請求伺服器存儲一個資源,並用Request-URI作為其標識。
DELETE 請求伺服器刪除由Request-URI所標識的資源。
TRACE 請求伺服器回送收到的請求信息,主要用語測試或診斷。
在Internet應用中,最常用的方法是GET和POST。
URI完整地指定了要訪問的網路資源,通常只要給出相對於伺服器的根目錄的相對目錄即可,因此總是以「/」開頭,最後,協議版本聲明了通信過程中使用HTTP的版本。

E. http請求的基本過程是什麼

http請求的基本過程是連接、請求、應答、關閉連接。

F. 請說一下http請求的基本過程

首先http是一個應用層的協議,在這個層的協議,只是一種通訊規范,也就是因為雙方要進行通訊,大家要事先約定一個規范。

1.連接 當我們輸入這樣一個請求時,首先要建立一個socket連接,因為socket是通過ip和埠建立的,所以之前還有一個DNS解析過程,把www.mycompany.com變成ip,如果url里不包含埠號,則會使用該協議的默認埠號。

DNS的過程是這樣的:首先我們知道我們本地的機器上在配置網路時都會填寫DNS,這樣本機就會把這個url發給這個配置的DNS伺服器,如果能夠
找到相應的url則返回其ip,否則該DNS將繼續將該解析請求發送給上級DNS,整個DNS可以看做是一個樹狀結構,該請求將一直發送到根直到得到結
果。現在已經擁有了目標ip和埠號,這樣我們就可以打開socket連接了。

2.請求 連接成功建立後,開始向web伺服器發送請求,這個請求一般是GET或POST命令(POST用於FORM參數的傳遞)。GET命令的格式為:GET 路徑/文件名 HTTP/1.0
文件名指出所訪問的文件,HTTP/1.0指出Web瀏覽器使用的HTTP版本。現在可以發送GET命令:

GET /mydir/index.html HTTP/1.0,

3.應答 web伺服器收到這個請求,進行處理。從它的文檔空間中搜索子目錄mydir的文件index.html。如果找到該文件,Web伺服器把該文件內容傳送給相應的Web瀏覽器。

為了告知瀏覽器,,Web伺服器首先傳送一些HTTP頭信息,然後傳送具體內容(即HTTP體信息),HTTP頭信息和HTTP體信息之間用一個空行分開。
常用的HTTP頭信息有:
① HTTP 1.0 200 OK 這是Web伺服器應答的第一行,列出伺服器正在運行的HTTP版本號和應答代碼。代碼"200 OK"表示請求完成。
② MIME_Version:1.0它指示MIME類型的版本。
③ content_type:類型這個頭信息非常重要,它指示HTTP體信息的MIME類型。如:content_type:text/html指示傳送的數據是HTML文檔。
④ content_length:長度值它指示HTTP體信息的長度(位元組)。

4.關閉連接:當應答結束後,Web瀏覽器與Web伺服器必須斷開,以保證其它Web瀏覽器能夠與Web伺服器建立連接。

下面我們具體分析其中的數據包在網路中漫遊的經歷

在網路分層結構中,各層之間是嚴格單向依賴的。「服務」是描述各層之間關系的抽象概念,即網路中各層向緊鄰上層提供的一組操作。下層是服務提供者,
上層是請求服務的用戶。服務的表現形式是原語(primitive),如系統調用或庫函數。系統調用是操作系統內核向網路應用程序或高層協議提供的服務原
語。網路中的n層總要向n+1層提供比n-1層更完備的服務,否則n層就沒有存在的價值。

傳輸層實現的是「端到端」通信,引進網間進程通信概念,同時也要解決差錯控制,流量控制,數據排序(報文排序),連接管理等問題,為此提供不同的服
務方式。通常傳輸層的服務通過系統調用的方式提供,以socket的方式。對於客戶端,要想建立一個socket連接,需要調用這樣一些函數socket
() bind() connect(),然後就可以通過send()進行數據發送。

現在看數據包在網路中的穿行過程:

應用層

首先我們可以看到在應用層,根據當前的需求和動作,結合應用層的協議,有我們確定發送的數據內容,我們把這些數據放到一個緩沖區內,然後形成了應用層的報文data。

傳輸層

這些數據通過傳輸層發送,比如tcp協議。所以它們會被送到傳輸層處理,在這里報文打上了傳輸頭的包頭,主要包含埠號,以及tcp的各種制信息,這些信息是直接得到的,因為介面中需要指定埠。這樣就組成了tcp的數據傳送單位segment。tcp
是一種端到端的協議,利用這些信息,比如tcp首部中的序號確認序號,根據這些數字,發送的一方不斷的進行發送等待確認,發送一個數據段後,會開啟一個計
數器,只有當收到確認後才會發送下一個,如果超過計數時間仍未收到確認則進行重發,在接受端如果收到錯誤數據,則將其丟棄,這將導致發送端超時重發。通過
tcp協議,控制了數據包的發送序列的產生,不斷的調整發送序列,實現流控和數據完整。

網路層

然後待發送的數據段送到網路層,在網路層被打包,這樣封裝上了網路層的包頭,包頭內部含有源及目的的ip地址,該層數據發送單位被稱為packet。網路層開始負責將這樣的數據包在網路上傳輸,如何穿過路由器,最終到達目的地址。在這里,根據目的ip地址,就需要查找下一跳路由的地址。首先在本機,要查找本機的路由表,在windows上運行route print就可以看到當前路由表內容,有如下幾項:
Active Routes Default Route Persistent Route.

整個查找過程是這樣的:
(1)根據目的地址,得到目的網路號,如果處在同一個內網,則可以直接發送。
(2)如果不是,則查詢路由表,找到一個路由。
(3)如果找不到明確的路由,此時在路由表中還會有默認網關,也可稱為預設網關,IP用預設的網關地址將一個數據傳送給下一個指定的路由器,所以網關也可能是路由器,也可能只是內網向特定路由器傳輸數據的網關。
(4)
路由器收到數據後,它再次為遠程主機或網路查詢路由,若還未找到路由,該數據包將發送到該路由器的預設網關地址。而數據包中包含一個最大路由跳數,如果超
過這個跳數,就會丟棄數據包,這樣可以防止無限傳遞。路由器收到數據包後,只會查看網路層的包裹數據,目的ip。所以說它是工作在網路層,傳輸層的數據對
它來說則是透明的。

如果上面這些步驟都沒有成功,那麼該數據報就不能被傳送。如果不能傳送的數據報來自本機,那麼一般會向生成數據報的應用程序返回一個「主機不可達」或 「網路不可達」的錯誤。

以windows下主機的路由表為例,看路由的查找過程
======================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.2 192.168.1.101 10
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.1.0 255.255.255.0 192.168.1.101 192.168.1.101 10
192.168.1.101 255.255.255.255 127.0.0.1 127.0.0.1 10
192.168.1.255 255.255.255.255 192.168.1.101 192.168.1.101 10
224.0.0.0 240.0.0.0 192.168.1.101 192.168.1.101 10
255.255.255.255 255.255.255.255 192.168.1.101 192.168.1.101 1
Default Gateway: 192.168.1.2

Network Destination 目的網段
Netmask 子網掩碼
Gateway 下一跳路由器入口的ip,路由器通過interface和gateway定義一調到下一個路由器的鏈路,通常情況下,interface和gateway是同一網段的。
Interface 到達該目的地的本路由器的出口ip(對於我們的個人pc來說,通常由機算機A的網卡,用該網卡的IP地址標識,當然一個pc也可以有多個網卡)。

網關這個概念,主要用於不同子網間的交互,當兩個子網內主機A,B要進行通訊時,首先A要將數據發送到它的本地網關,然後網關再將數據發送給B所在的網關,然後網關再發送給B。
默認網關,當一個數據包的目的網段不在你的路由記錄中,那麼,你的路由器該把那個數據包發送到哪裡!預設路由的網關是由你的連接上的default gateway決定的,也就是我們通常在網路連接里配置的那個值。

通常interface和gateway處在一個子網內,對於路由器來說,因為可能具有不同的interface,當數據包到達時,根據
Network
Destination尋找匹配的條目,如果找到,interface則指明了應當從該路由器的那個介面出去,gateway則代表了那個子網的網關地
址。

第一條 0.0.0.0 0.0.0.0 192.168.1.2 192.168.1.101 10
0.0.0.0
代表了預設路由。該路由記錄的意思是:當我接收到一個數據包的目的網段不在我的路由記錄中,我會將該數據包通過192.168.1.101這個介面發送到
192.168.1.2這個地址,這個地址是下一個路由器的一個介面,這樣這個數據包就可以交付給下一個路由器處理,與我無關。該路由記錄的線路質量
10。當有多個條目匹配時,會選擇具有較小Metric值的那個。

第三條 192.168.1.0 255.255.255.0 192.168.1.101 192.168.1.101 10

聯網段的路由記錄:當路由器收到發往直聯網段的數據包時該如何處理,這種情況,路由記錄的interface和gateway是同一個。當我接收到一個數
據包的目的網段是192.168.1.0時,我會將該數據包通過192.168.1.101這個介面直接發送出去,因為這個埠直接連接著
192.168.1.0這個網段,該路由記錄的線路質量
10 (因interface和gateway是同一個,表示數據包直接傳送給目的地址,不需要再轉給路由器)。

一般就分這兩種情況,目的地址與當前路由器介面是否在同一子網。如果是則直接發送,不需再轉給路由器,否則還需要轉發給下一個路由器繼續進行處理。

查找到下一跳ip地址後,還需要知道它的mac地址,這個地址要作為鏈路層數據裝進鏈路層頭部。這時需要arp協議,具體過程是這樣的,查找arp
緩沖,windows下運行arp
-a可以查看當前arp緩沖內容。如果裡面含有對應ip的mac地址,則直接返回。否則需要發生arp請求,該請求包含源的ip和mac地址,還有目的地
的ip地址,在網內進行廣播,所有的主機會檢查自己的ip與該請求中的目的ip是否一樣,如果剛好對應則返回自己的mac地址,同時將請求者的ip
mac保存。這樣就得到了目標ip的mac地址。

鏈路層

將mac地址及鏈路層控制信息加到數據包里,形成Frame,Frame在鏈路層協議下,完成了相鄰的節點間的數據傳輸,完成連接建立,控制傳輸速度,數據完整。

物理層

物理線路則只負責該數據以bit為單位從主機傳輸到下一個目的地。

下一個目的地接受到數據後,從物理層得到數據然後經過逐層的解包 到 鏈路層 到 網路層,然後開始上述的處理,在經網路層 鏈路層 物理層將數據封裝好繼續傳往下一個地址。

在上面的過程中,可以看到有一個路由表查詢過程,而這個路由表的建立則依賴於路由演算法。也就是說路由演算法實際上只是用來路由器之間更新維護路由表,
真正的數據傳輸過程並不執行這個演算法,只查看路由表。這個概念也很重要,需要理解常用的路由演算法。而整個tcp協議比較復雜,跟鏈路層的協議有些相似,其
中有很重要的一些機制或者概念需要認真理解,比如編號與確認,流量控制,重發機制,發送接受窗口。

tcp/ip基本模型及概念

物理層

設備,中繼器(repeater),集線器(hub)。對於這一層來說,從一個埠收到數據,會轉發到所有埠。

鏈路層

協議:SDLC(Synchronous Data Link Control)HDLC(High-level Data Link
Control)
ppp協議獨立的鏈路設備中最常見的當屬網卡,網橋也是鏈路產品。集線器MODEM的某些功能有人認為屬於鏈路層,對此還有些爭議認為屬於物理層設備。除
此之外,所有的交換機都需要工作在數據鏈路層,但僅工作在數據鏈路層的僅是二層交換機。其他像三層交換機、四層交換機和七層交換機雖然可對應工作在OSI
的三層、四層和七層,但二層功能仍是它們基本的功能。

因為有了MAC地址表,所以才充分避免了沖突,因為交換機通過目的MAC地址知道應該把這個數據轉發到哪個埠。而不會像HUB一樣,會轉發到所有滴埠。所以,交換機是可以劃分沖突域滴。

網路層

四個主要的協議:
網際協議IP:負責在主機和網路之間定址和路由數據包。
地址解析協議ARP:獲得同一物理網路中的硬體主機地址。
網際控制消息協議ICMP:發送消息,並報告有關數據包的傳送錯誤。
互聯組管理協議IGMP:被IP主機拿來向本地多路廣播路由器報告主機組成員。

該層設備有三層交換機,路由器。

傳輸層

兩個重要協議 TCP 和 UDP 。

埠概念:TCP/UDP 使用 IP 地址標識網上主機,使用埠號來標識應用進程,即 TCP/UDP 用主機 IP
地址和為應用進程分配的埠號來標識應用進程。埠號是 16 位的無符號整數, TCP 的埠號和 UDP
的埠號是兩個獨立的序列。盡管相互獨立,如果 TCP 和 UDP
同時提供某種知名服務,兩個協議通常選擇相同的埠號。這純粹是為了使用方便,而不是協議本身的要求。利用埠號,一台主機上多個進程可以同時使用
TCP/UDP 提供的傳輸服務,並且這種通信是端到端的,它的數據由 IP 傳遞,但與 IP
數據報的傳遞路徑無關。網路通信中用一個三元組可以在全局唯一標志一個應用進程:(協議,本地地址,本地埠號)。

也就是說tcp和udp可以使用相同的埠。

可以看到通過(協議,源埠,源ip,目的埠,目的ip)就可以用來完全標識一組網路連接。

應用層

基於tcp:Telnet FTP SMTP DNS HTTP
基於udp:RIP NTP(網落時間協議)和DNS (DNS也使用TCP)SNMP TFTP

G. Web伺服器對來自瀏覽器的請求的處理過程

c/s(客戶機/伺服器)有三個主要部件:資料庫伺服器、客戶應用程序和網路。伺服器負責有效地管理系統的資源,其任務集中於:
1.資料庫安全性的要求
2.資料庫訪問並發性的控制
3.資料庫前端的客戶應用程序的全局數據完整性規則
4.資料庫的備份與恢復
客戶端應用程序的的主要任務是:
1.提供用戶與資料庫交互的界面
2.向資料庫伺服器提交用戶請求並接收來自資料庫伺服器的信息
3.利用客戶應用程序對存在於客戶端的數據執行應用邏輯要求
4.網路通信軟體的主要作用是,完成資料庫伺服器和客戶應用程序之間的數據傳輸。
三層C/S結構是將應用功能分成表示層、功能層和數據層三部分。
解決方案是:對這三層進行明確分割,並在邏輯上使其獨立。
在三層C/S中, 表示層 是應用的用戶介面部分,它擔負著用戶與應用間的對話功能。它用於檢查用戶從鍵盤等輸入的數據,顯示應用輸出的數據。為使用戶能直觀地進行操作,一般要使用圖形用戶介面 (GUI),操作簡單、易學易用。在變更用戶介面時,只需改寫顯示控制和數據檢查程序,而不影響其他兩層。檢查的內容也只限於數據的形式和值的范圍,不包括有關業務本身的處理邏輯。
功能層 相當於應用的本體,它是將具體的業務處理邏輯地編入程序中。表示層和功能層之間的數據交往要盡可能簡潔。
數據層 就是DBMS,負責管理對資料庫數據的讀寫。DBMS必須能迅速執行大量數據的更新和檢索。現在的主流是關系資料庫管理系統 (RDBMS)。因此一般從功能層傳送到數據層的要求大都使用SQL語言。
在三層或N層C/S結構中,中間件 (Middleware) 是最重要的部件。所謂中間件是一個用API定義的軟體層,是具有強大通信能力和良好可擴展性的分布式軟體管理框架。它的功能是在客戶機和伺服器或者伺服器和伺服器之間傳送數據,實現客戶機群和伺服器群之間的通信。其工作流程是:在客戶機里的應用程序需要駐留網路上某個伺服器的數據或服務時,搜索此數據的C/S應用程序需訪問中間件系統。該系統將查找數據源或服務,並在發送應用程序請求後重新打包響應,將其傳送回應用程序。隨著網路計算模式的發展,中間件日益成為軟體領域的新的熱點。中間件在整個分布式系統中起數據匯流排的作用,各種異構系統通過中間件有機地結合成一個整體。每個C/S環境,從最小的LAN環境到超級網路環境,都使用某種形式的中間件。無論客戶機何時給伺服器發送請求,也無論它何時應用存取資料庫文件,都有某種形式的中間件傳遞C/S鏈路,用以消除通信協議、資料庫查詢語言、應用邏輯與操作系統之間潛在的不兼容問題。

三層C/S結構的優勢主要表現在以下幾個方面:
1.利用單一的訪問點,可以在任何地方訪問站點的資料庫;
2.對於各種信息源,不論是文本還是圖形都採用相同的界面;
3.所有的信息,不論其基於的平台,都可以用相同的界面訪問;
4.可跨平台操作;
5.減少整個系統的成本;
6.維護升級十分方便;
7.具有良好的開放性;
8.系統的可擴充性良好;
9.進行嚴密的安全管理;
0.系統管理簡單,可支持異種資料庫,有很高的可用性。

H. javaweb 怎麼查看請求響應的整個過程的插件

博客原文: http://www.cnblogs.com/yin-jingyu/archive/2011/08/01/2123548.html

HTTP(HyperText Transfer Protocol)是一套計算機通過網路進行通信的規則。計算機專家設計出HTTP,使HTTP客戶(如Web瀏覽器)能夠從HTTP伺服器(Web伺服器)請求信息和服務,HTTP目前協議的版本是1.1.HTTP是一種無狀態的協議,無狀態是指Web瀏覽器和Web伺服器之間不需要建立持久的連接,這意味著當一個客戶端向伺服器端發出請求,然後Web伺服器返回響應(response),連接就被關閉了,在伺服器端不保留連接的有關信息.HTTP遵循請求(Request)/應答(Response)模型。Web瀏覽器向Web伺服器發送請求,Web伺服器處理請求並返回適當的應答。所有HTTP連接都被構造成一套請求和應答。
HTTP使用內容類型,是指Web伺服器向Web瀏覽器返回的文件都有與之相關的類型。所有這些類型在MIMEInternet郵件協議上模型化,即Web伺服器告訴Web瀏覽器該文件所具有的種類,是HTML文檔、GIF格式圖像、聲音文件還是獨立的應用程序。大多數Web瀏覽器都擁有一系列的可配置的輔助應用程序,它們告訴瀏覽器應該如何處理Web伺服器發送過來的各種內容類型。
HTTP通信機制是在一次完整的HTTP通信過程中,Web瀏覽器與Web伺服器之間將完成下列7個步驟:
(1) 建立TCP連接
在HTTP工作開始之前,Web瀏覽器首先要通過網路與Web伺服器建立連接,該連接是通過TCP來完成的,該協議與IP協議共同構建Internet,即著名的TCP/IP協議族,因此Internet又被稱作是TCP/IP網路。HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之後才能,才能進行更層協議的連接,因此,首先要建立TCP連接,一般TCP連接的埠號是80
(2) Web瀏覽器向Web伺服器發送請求命令
一旦建立了TCP連接,Web瀏覽器就會向Web伺服器發送請求命令
例如:GET/sample/hello.jsp HTTP/1.1
(3) Web瀏覽器發送請求頭信息
瀏覽器發送其請求命令之後,還要以頭信息的形式向Web伺服器發送一些別的信息,之後瀏覽器發送了一空白行來通知伺服器,它已經結束了該頭信息的發送。
(4) Web伺服器應答
客戶機向伺服器發出請求後,伺服器會客戶機回送應答,
HTTP/1.1 200 OK
應答的第一部分是協議的版本號和應答狀態碼
(5) Web伺服器發送應答頭信息
正如客戶端會隨同請求發送關於自身的信息一樣,伺服器也會隨同應答向用戶發送關於它自己的數據及被請求的文檔。
(6) Web伺服器向瀏覽器發送數據
Web伺服器向瀏覽器發送頭信息後,它會發送一個空白行來表示頭信息的發送到此為結束,接著,它就以Content-Type應答頭信息所描述的格式發送用戶所請求的實際數據
(7) Web伺服器關閉TCP連接
一般情況下,一旦Web伺服器向瀏覽器發送了請求數據,它就要關閉TCP連接,然後如果瀏覽器或者伺服器在其頭信息加入了這行代碼
Connection:keep-alive
TCP連接在發送後將仍然保持打開狀態,於是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需的時間,還節約了網路帶寬。

1、HTTP1.1 或 1.0 沒有握手的概念(在https裡面處於安全考慮才有握手)。客戶端完整的發送一個請求(請求頭+請求體),伺服器收到這個消息並處理完成後返回一個響應包http response。 然後連接關閉(不考慮keep-alive機制)。
2、客戶端發送請求是一次把請求行和請求體全部發送出去,沒有說先發送請求行等待回應再發送包體的。可
3、瀏覽器會根據你在地址欄里輸入的url進行DNS解析
4、對IIS 不是很了解。看你怎麼定義這個伺服器了,如果我們的伺服器使用最常見的apache+tomcat。那麼,apache 就是負責接收你的http請求,然後再把請求轉給tomcat 進行處理。
5、建立tcp鏈接不是根據http報文里的host欄位建立的。而是在你在地址欄中輸入完地址敲下回車(chrome有預解析機制,可能早就提前幫你解析好了)後,瀏覽器會有一個DNS解析過程,將域名轉換成IP,然後瀏覽器根據這個IP加上默認的80埠建立好TCP鏈接的。這些跟http都沒關系。
要明白,TCP位於傳輸層,HTTP位於應用層。下層只會向上層提供服務,但不會從上層獲得服務。
6、http請求的消息頭,\r\n 和包體都是一起發送的,沒有先發送誰再發送誰之分。

I. 簡述WEB伺服器處理HTTP請求的典型過程是什麼

瀏覽器(客戶端)發出請求,WEB伺服器收到請求後,查看是否存在該請求目標,不存在則返回錯誤信息給瀏覽器。如存在,且是靜態頁面(html,htm),直接把該頁面及其相關的CSS,及各種腳本或圖片根據HTTP協議返回給瀏覽器,瀏覽器也根據HTTP協議來接收頁面,再根據HTML把接收到的內容顯示出來。如果是動態頁面(ASP,ASPX,PHP,JSP,CGI)等,則WEB伺服器把這些頁面里的相關代碼交給專門的能運行這些代碼的應用程序去運行,並得到運行結果。然後把結果嵌入到頁面正確的位置,再把頁面給瀏覽器。

J. 對於網站來說,什麼是請求,什麼是響應

進行Web開發關鍵是要了解超文本傳輸協議(HTTP),該協議用來傳輸網頁、圖像以及網際網路上在瀏覽器與伺服器間傳輸的其他類型文件。只要你在瀏覽器上輸入一個URL,最前面的http://就表示使用HTTP來訪問指定位置的信息。(大部分瀏覽器還支持其他一些不同的協議,其中FTP就是一個典型例子。)

本文從HTTP協議的結構上初步探討HTTP協議的工作原理和請求響應格式,並最後通過一個使用Java編寫的小HTTP伺服器驗證了如何處理和響應HTTP請求

HTTP 由兩部分組成:請求和響應。當你在Web瀏覽器中輸入一個URL時,瀏覽器將根據你的要求創建並發送請求,該請求包含所輸入的URL以及一些與瀏覽器本身相關的信息。當伺服器收到這個請求時將返回一個響應,該響應包括與該請求相關的信息以及位於指定URL(如果有的話)的數據。直到瀏覽器解析該響應並顯示出網頁(或其他資源)為止