http協議 面試常見題

2021-08-19 15:35:25 字數 3513 閱讀 4102

1.什麼是http協議?★☆

2.web客戶端是什麼?☆

3.web服務端是什麼?☆

4.什麼是資源?★

5.mime型別是什麼?★☆

6.什麼是uri?★

7.什麼是url?★

8.什麼是urn?★

9.常見的http方法有哪些?★☆

10.常見的狀態碼200,206,302,304,404,501的含義?★★☆

11.什麼是報文?★★☆

12.http協議棧是怎麼樣的?★★★

13.什麼是dns?★

14.什麼是埠號?★

15.在瀏覽器位址列輸入乙個http的url位址,按下回車鍵之後,瀏覽器怎麼通過http顯示位於遠端伺服器中的某個簡單html資源?★★★☆

16.什麼是**?★☆

17.什麼是快取?★☆

18.什麼是閘道器?★☆

19.什麼是隧道?★☆

20.什麼是agent**?★☆

http:超文字傳輸協議。使用的是可靠的資料傳輸協議,在傳輸的過程中不會被損壞或產生混亂。http可以從遍布全世界的web伺服器商將各種資訊塊迅速、便捷、可靠地搬移到人們桌面上的web瀏覽器上去。

web客戶端常見的又各大廠商的瀏覽器,比如微軟的ie瀏覽器,google的chrome瀏覽器。

web伺服器儲存web類容。web伺服器使用http協議,被稱為http伺服器。

客戶端向伺服器傳送http請求,伺服器會在http響應中回送所請求的資料。

web資源寄宿在web伺服器上。所有能夠提供web內容的東西都是web資源。比如靜態檔案,能夠動態生成內容的軟體程式。

mime:多用途網際網路郵件擴充套件。最初設計mime是為了解決在不同的電子郵件系統之間搬移報文時存在的問題。http採納了它,用來描述並標記多**內容。

mime型別時一種文字標記,標識一種主要的物件型別和乙個特定的子型別,中間由一條斜槓來分隔。如text/html,text/plain,image/ipeg。常見的mime型別有數百個。

uri:統一資源識別符號,在世界範圍內唯一標識並定位資訊資源。

uri有兩種形式:url和urn。

url:統一資源定位符。url描述了一台特定伺服器上某資源的特定位置。

url的第一部分被稱為方案(scheme)。說明了訪問資源所使用的協議型別。這裡使用的時http協議(http://)。

其餘部分指定了web伺服器上的某個資源:/jackson0714/p/algorithm_1.html。

幾乎所有的urli都是url。

urn:統一資源名,urn是作為特定內容的唯一名稱使用的,與目前的資源所在地無關。

get從伺服器向客戶端傳送命名資源

put將來自客戶端的資料儲存到乙個命名的伺服器資源中去

delete

從伺服器中刪除命名資源

post

將客戶端資料傳送到乙個伺服器閘道器應用程式

head

僅傳送命名資源響應中的http首部

每條http響應報文返回時都會攜帶乙個狀態碼。狀態碼是乙個三位數字的**,告知客戶端請求是否成功,或者是否需要採取其他動作。

狀態碼原因短語

含義200

ok成功。請求的所有資料都在響應主體中。

206partial content

成功執行了乙個部分或range(範圍)請求。206響應中必須包含content-range、date以及etag或content-location首部。斷點續傳必考題。

302found

重定向。到其他地方去獲取資源。客戶端應該是用使用location首部給出的url來臨時定位資源。將來的請求仍應使用老的url。

304not modified

如果客戶端發起了乙個get請求,而資源最近未被修改,則用304說明資源未被修改。帶有這個狀態嗎的響應不應該包含實體的主體部分。快取必考題。

305use proxy

用來說明必須通過乙個**來訪問資源;**的位置由locatin首部給出。

403forbidden

請求被伺服器拒絕了。

404not found

無法找到所請求的url

500internal server error

伺服器遇到乙個妨礙它為請求提供服務的錯誤。

503bad gateway

伺服器現在無法為請求提供服務,但將來可以。

http報文是由一行一行的簡單的字串組成的。http報文都是純文字,不是二進位制**。

請求報文:從web客戶端發往web伺服器的http報文稱為請求報文。

響應報文:從web伺服器發往客戶端的報文稱為響應報文。

http報文包含以下三個部分:

起始行:報文的第一行就是起始行,在請求報文中用來說明要做些什麼,在響應報文中說明出現了什麼情況。如:get /jackson0714/p/algorithm_1.html http/1.1

首部字段:起始行後面由零個或多個首部字段。以鍵值對的形式表示首部字段。鍵和值之間用冒號分隔。首部以乙個空行結束。如content-type:text/html:charset=utf-8

主體:首部字段空行之後就是可選的報文主體了,其中包含了所有型別的資料。請求主體中包括了要傳送web伺服器的資料,響應主體中裝載了要返回給客戶端的資料。

http是應用層協議。它把聯網的細節都交給了通用、可靠的網際網路傳輸協議tcp\ip協議。

http網路協議棧:

tcp協議:

a.傳輸控制協議

b.無差錯的資料傳輸

c.按序傳輸(資料總是會按照傳送的順序到達)

d.未分段的資料流(可以在任意時刻以任意尺寸將資料傳送出去)

80就是埠號。http的url中沒有埠號時,可以假設預設埠號時80。有了ip位址和埠號,客戶端就可以很方便地通過tcp/ip進行通訊了。

(1)瀏覽器從url中解析出伺服器的主機名;

(2)瀏覽器將伺服器的主機名轉換成伺服器的ip位址;

(3)瀏覽器將埠號(如果有的話),從url中解析出來;

(4)瀏覽器建立一條與web伺服器的tcp連線;

(5)瀏覽器向伺服器傳送一條http請求報文;

(6)伺服器向瀏覽器回送一條http響應報文;

(7)關閉連線,瀏覽器顯示文件。

**是位於客戶端和伺服器之間的http中間實體。接收所有客戶端的http請求,並將這些請求**給伺服器(可能會對請求進行修改之後**)。

快取http的倉庫,使常用頁面的副本可以儲存在離客戶端更近的地方。

閘道器是一種特殊的伺服器,作為其他伺服器的中間實體使用。通常用於將http流量轉換成其他的協議。

隧道是建立起來之後,就會在兩條連線之間對原始資料進行盲**的http應用程式。常見用途是通過http連線承載加密的安全套接字層(ssl)流量,這樣ssl流量就可以穿過只允許web流量通過的防火牆了。

使用者agent**是代表使用者發起http的客戶端程式。比如web瀏覽器。另外有些自動傳送http請求並獲取內容的**,比如「網路蜘蛛」或者「web機械人」。

HTTP協議面試

http1.0所做的優化 http1.0 http1.1的區別 1快取處理不同。1.0只是用乙個標頭檔案的快取策略,1.1引入了更多 2頻寬優化及網路連線的使用 1.0存在浪費頻寬,不支援斷點續傳功能。1.1允許只請求資源的部分 3host頭處理 1.0中每台伺服器繫結唯一的ip位址。1.1請求訊息...

常見的Http協議狀態

200 請求正常處理 204 請求被受理但沒有資源可返回 206 客戶端只是請求資源的一部分,伺服器只對請求的部分資源執行get方法,相應報文中通過content range指定範圍的資源 301 永久性重定向 302 臨時重定向 303 與302相似,它希望客戶端在請求乙個url時,能通過get方...

http協議常見請求方法

get 向伺服器特定的資源發出請求,一般用於查詢資訊。get方法要求伺服器將url定位的資源放在響應報文的資料部分,回送給客戶端一般不包含 請求內容 部分,請求資料以位址的形式表現在請求行 head 和get類似,只不過服務端受到head請求後只返回響應頭,而不會傳送相應內容。當我們只需要檢視某個頁...