先交代下背景,寫這個系列的原因是總結自己遇到的面試題以及可能遇到的題目,更重要的是,今年定的目標是掌握網絡這一塊的知識點,先是搞懂HTTP協議,然后是TCP/IP協議,再就是WCF如何運用這些協議更好地工作。
不懼面試:HTTP協議(2) - 網關、隧道和中繼
不懼面試:HTTP協議(4) - 安全HTTP
不懼面試:HTTP協議(5) - 基本認證機制
持續更新中...
面試常見題:
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代理?★☆
看完這些題目,心中是否有疑惑呢?那就接着看唄,我來幫您解答心中的疑惑o(^▽^)o
參考答案:
1.什么是HTTP協議?★☆
HTTP:超文本傳輸協議。使用的是可靠的數據傳輸協議,在傳輸的過程中不會被損壞或產生混亂。HTTP可以從遍布全世界的Web服務器商將各種信息塊迅速、便捷、可靠地搬移到人們桌面上的Web瀏覽器上去。
2.Web客戶端是什么?☆
Web客戶端常見的又各大廠商的瀏覽器,比如微軟的IE瀏覽器,google的chrome瀏覽器。
3.Web服務端是什么?☆
Web服務器存儲Web類容。Web服務器使用HTTP協議,被稱為HTTP服務器。
客戶端向服務器發送HTTP請求,服務器會在HTTP響應中回送所請求的數據。
4.什么是資源?★
Web資源寄宿在Web服務器上。所有能夠提供Web內容的東西都是Web資源。比如靜態文件,能夠動態生成內容的軟件程序。
5.MIME類型是什么?★☆
MIME:多用途因特網郵件擴展。最初設計MIME是為了解決在不同的電子郵件系統之間搬移報文時存在的問題。HTTP采納了它,用來描述並標記多媒體內容。
MIME類型時一種文本標記,標識一種主要的對象類型和一個特定的子類型,中間由一條斜杠來分隔。如text/html,text/plain,image/ipeg。常見的MIME類型有數百個。
6.什么是URI?★
URI:統一資源標識符,在世界范圍內唯一標識並定位信息資源。
URI有兩種形式:URL和URN。
7.什么是URL?★
URL:統一資源定位符。URL描述了一台特定服務器上某資源的特定位置。
URL的第一部分被稱為方案(scheme)。說明了訪問資源所使用的協議類型。這里使用的時HTTP協議(http://)。
第二部分表示服務器的因特網地址:www.cnblogs.com。
其余部分指定了Web服務器上的某個資源:/jackson0714/p/algorithm_1.html。
幾乎所有的URLI都是URL。
8.什么是URN?★
URN:統一資源名,URN是作為特定內容的唯一名稱使用的,與目前的資源所在地無關。
9.常見的HTTP方法有哪些?★☆
| GET |
從服務器向客戶端發送命名資源 |
| PUT |
將來自客戶端的數據存儲到一個命名的服務器資源中去 |
| DELETE |
從服務器中刪除命名資源 |
| POST |
將客戶端數據發送到一個服務器網關應用程序 |
| HEAD |
僅發送命名資源響應中的HTTP首部 |
10.常見的狀態碼200,206,302,304,404,503的含義?★★☆
每條HTTP響應報文返回時都會攜帶一個狀態碼。狀態碼是一個三位數字的代碼,告知客戶端請求是否成功,或者是否需要采取其他動作。
| 狀態碼 |
原因短語 |
含義 |
| 200 |
OK |
成功。請求的所有數據都在響應主體中。 |
| 206 |
Partial Content |
成功執行了一個部分或Range(范圍)請求。206響應中必須包含Content-Range、Date以及ETag或Content-Location首部。斷點續傳必考題。 |
| 302 |
Found |
重定向。到其他地方去獲取資源。客戶端應該是用使用Location首部給出的URL來臨時定位資源。將來的請求仍應使用老的URL。 |
| 304 |
NOT Modified |
如果客戶端發起了一個GET請求,而資源最近未被修改,則用304說明資源未被修改。帶有這個狀態嗎的響應不應該包含實體的主體部分。緩存必考題。 |
| 305 |
Use Proxy |
用來說明必須通過一個代理來訪問資源;代理的位置由Locatin首部給出。 |
| 403 |
Forbidden |
請求被服務器拒絕了。 |
| 404 |
Not Found |
無法找到所請求的URL |
| 500 |
Internal Server Error |
服務器遇到一個妨礙它為請求提供服務的錯誤。 |
| 503 |
Bad Gateway |
服務器現在無法為請求提供服務,但將來可以。 |
11.什么是報文?★★☆
HTTP報文是由一行一行的簡單的字符串組成的。HTTP報文都是純文本,不是二進制代碼。
請求報文:從Web客戶端發往Web服務器的HTTP報文稱為請求報文。
響應報文:從Web服務器發往客戶端的報文稱為響應報文。
HTTP報文包含以下三個部分:
起始行:報文的第一行就是起始行,在請求報文中用來說明要做些什么,在響應報文中說明出現了什么情況。如:GET /jackson0714/p/algorithm_1.html HTTP/1.1
首部字段:起始行后面由零個或多個首部字段。以鍵值對的形式表示首部字段。鍵和值之間用冒號分隔。首部以一個空行結束。如Content-Type:text/html:charset=utf-8
主體:首部字段空行之后就是可選的報文主體了,其中包含了所有類型的數據。請求主體中包括了要發送Web服務器的數據,響應主體中裝載了要返回給客戶端的數據。
12.HTTP協議棧是怎么樣的?★★★
HTTP是應用層協議。它把聯網的細節都交給了通用、可靠的因特網傳輸協議TCP\IP協議。
HTTP網絡協議棧:

TCP協議:
a.傳輸控制協議
b.無差錯的數據傳輸
c.按序傳輸(數據總是會按照發送的順序到達)
d.未分段的數據流(可以在任意時刻以任意尺寸將數據發送出去)
13.什么是DNS?★
域名解析服務。將主機名轉換為IP地址。如將http://www.cnblogs.com/主機名轉換為IP地址:211.137.51.78。
14.什么是端口號?★
80就是端口號。HTTP的URL中沒有端口號時,可以假設默認端口號時80。有了IP地址和端口號,客戶端就可以很方便地通過TCP/IP進行通信了。
15.在瀏覽器地址欄輸入一個HTTP的URL地址,按下回車鍵之后,瀏覽器怎么通過HTTP顯示位於遠端服務器中的某個簡單HTML資源?★★★☆
(1)瀏覽器從URL中解析出服務器的主機名;
(2)瀏覽器將服務器的主機名轉換成服務器的IP地址;
(3)瀏覽器將端口號(如果有的話),從URL中解析出來;
(4)瀏覽器建立一條與Web服務器的TCP連接;
(5)瀏覽器向服務器發送一條HTTP請求報文;
(6)服務器向瀏覽器回送一條HTTP響應報文;
(7)關閉連接,瀏覽器顯示文檔。
16.什么是代理?★☆
代理是位於客戶端和服務器之間的HTTP中間實體。接收所有客戶端的HTTP請求,並將這些請求轉發給服務器(可能會對請求進行修改之后轉發)。
17.什么是緩存?★☆
緩存HTTP的倉庫,使常用頁面的副本可以保存在離客戶端更近的地方。
18.什么是網關?★☆
網關是一種特殊的服務器,作為其他服務器的中間實體使用。通常用於將HTTP流量轉換成其他的協議。
19.什么是隧道?★☆
隧道是建立起來之后,就會在兩條連接之間對原始數據進行盲轉發的HTTP應用程序。常見用途是通過HTTP連接承載加密的安全套接字層(SSL)流量,這樣SSL流量就可以穿過只允許Web流量通過的防火牆了。
20.什么是Agent代理?★☆
用戶Agent代理是代表用戶發起HTTP的客戶端程序。比如Web瀏覽器。另外有些自動發送HTTP請求並獲取內容的代理,比如“網絡蜘蛛”或者“Web機器人”。
作 者: Jackson0714
出 處:http://www.cnblogs.com/jackson0714/
關於作者:專注於微軟平台的項目開發。如有問題或建議,請多多賜教!
版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
特此聲明:所有評論和私信都會在第一時間回復。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信我
聲援博主:如果您覺得文章對您有幫助,可以點擊文章右下角【推薦】一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!
