1、說一下什么是HTTP協議?
超文本傳輸協議(HTTP)
一種無狀態的、以請求/應答方式運行的協議,對客戶端和服務端之間資料傳輸的格式規范,簡稱"超文本傳輸協議",
2、什么是Http協議無狀態協議?怎么解決Http協議無狀態協議?(曾經去某創業公司問到)
- 無狀態協議對于事務處理沒有記憶能力,缺少狀態,意味著如果后續處理需要前面的資訊
- 無狀態協議解決辦法: 通過1、Cookie 2、通過Session會話保存,
3、什么是HTTP報文?
HTTP報文是HTTP協議在客戶端和服務端之間傳送的資料塊,
4、Http協議由什么組成?(倒不如說HTTP報文由哪三部分組成?)
HTTP報文由起始行(start line)、頭部(header)和主體(body)三部分組成,起始行是對報文進行的描述,頭部包含報文的一些屬性,主體包含報文的資料(可選,非必選),
5、HTTP報文分為哪兩類?
HTTP報文可以分為:請求報文和回應報文,當客戶端向服務端發送請求時,就是發送請求報文;當服務端向客戶端回傳資料時,就是回傳回應報文,比如,獲取一個文本需要的請求報文和回應報文:

6、說一下網路傳輸程序


物、數、網、傳、會、表、應
7、HTTP常見的請求方法有哪些?

下面是之前版本

- GET: 用于請求訪問已經被URI(統一資源識別符號)識別的資源,可以通過URL傳參給服務器
- POST:用于傳輸資訊給服務器,主要功能與GET方法類似,但一般推薦使用POST方式,
- PUT: 傳輸檔案,報文主體中包含檔案內容,保存到對應URI位置,
- HEAD: 獲得報文首部,與GET方法類似,只是不回傳報文主體,一般用于驗證URI是否有效,
- DELETE:洗掉檔案,與PUT方法相反,洗掉對應URI位置的檔案,
- OPTIONS:查詢相應URI支持的HTTP方法,
8、 HTTP的狀態碼分為哪幾類?

9、說一下Http協議中302狀態(阿里經常問)
- http協議中,回傳狀態碼302表示重定向,
- 這種情況下,服務器回傳的頭部資訊中會包含一個 Location 欄位,內容是重定向到的url,
10、常見Http協議狀態?
200:請求被正常處理
204:請求被受理但沒有資源可以回傳
206:客戶端只是請求資源的一部分,服務器只對請求的部分資源執行GET方法,相應報文中通過Content-Range指定范圍的資源,
301:永久性重定向
302:臨時重定向
303:與302狀態碼有相似功能,只是它希望客戶端在請求一個URI的時候,能通過GET方法重定向到另一個URI上
304:發送附帶條件的請求時,條件不滿足時回傳,與重定向無關
307:臨時重定向,與302類似,只是強制要求使用POST方法
400:請求報文語法有誤,服務器無法識別
401:請求需要認證
403:請求的對應資源禁止被訪問
404:服務器無法找到對應資源
500:服務器內部錯誤
503:服務器正忙
11、Http協議首部欄位?
a、請求行
請求的第一行是“方法、URL、協議/版本”:
POST http://xg.mediportal.com.cn/health/sms/verify/telephone HTTP/1.1
以上代碼中“POST”代表請求方法,“http://xg.mediportal.com.cn/health/sms/verify/telephone”表示URI,“HTTP/1.1代表協議和協議的版本,
根據HTTP標準,HTTP請求可以使用多種請求方法,例如:HTTP1.1目前支持8種請求方法:詳見上面第 7 步,
b、請求頭(請求頭包含許多有關的客戶端環境和請求正文的有用資訊,例如,請求頭可以宣告瀏覽器所用的語言,請求正文的長度等)
| Content-Type | 是回傳訊息中非常重要的內容,表示后面的檔案屬于什么MIME型別,Content-Type: [type]/[subtype]; parameter,例如最常見的就是text/html,它的意思是說回傳的內容是文本型別,這個文本又是HTML格式的,原則上瀏覽器會根據Content-Type來決定如何顯示回傳的訊息體內容 |
| Host | 指定請求資源的Intenet主機和埠號,必須表示請求url的原始服務器或網關的位置,HTTP/1.1請求必須包含主機頭域,否則系統會以400狀態碼回傳 |
| Accept | 瀏覽器可接受的MIME型別 |
| Accept-Charset | 瀏覽器可接受的字符集 |
| Accept-Encoding | 瀏覽器能夠進行解碼的資料編碼方式,比如gzip,Servlet能夠向支持gzip的瀏覽器回傳經gzip編碼的HTML頁面,許多情形下這可以減少5到10倍的下載時間 |
| Accept-Language | 瀏覽器所希望的語言種類,當服務器能夠提供一種以上的語言版本時要用到 |
| Authorization | 授權資訊,通常出現在對服務器發送的WWW-Authenticate頭的應答中 |
| Connection | 表示是否需要持久連接,如果Servlet看到這里的值為“Keep- Alive”,或者看到請求使用的是HTTP1.1(HTTP 1.1默認進行持久連接),它就可以利用持久連接的優點,當頁面包含多個元素時(例如Applet,圖片),顯著地減少下載所需要的時間,要實作這一點,Servlet需要在應答中發送一個Content-Length頭,最簡單的實作方法是:先把內容寫入 ByteArrayOutputStream,然后在正式寫出內容之前計算它的大小 |
| Content-Length | 表示請求訊息正文的長度 |
| Cookie | 這是最重要的請求頭資訊之一 |
| From | 請求發送者的email地址,由一些特殊的Web客戶程式使用,瀏覽器不會用到它 |
| Host | 初始URL中的主機和埠 |
| If-Modified-Since | 只有當所請求的內容在指定的日期之后又經過修改才回傳它,否則回傳304“Not Modified”應答 |
| Pragma | 指定“no-cache”值表示服務器必須回傳一個重繪后的檔案,即使它是代理服務器而且已經有了頁面的本地拷貝 |
| Referer | 包含一個URL,用戶從該URL代表的頁面出發訪問當前請求的頁面 |
| User-Agent | 瀏覽器型別,如果Servlet回傳的內容與瀏覽器型別有關則該值非常有用 |
| UA-Pixels,UA-Color,UA-OS,UA-CPU | 由某些版本的IE瀏覽器所發送的非標準的請求頭,表示螢屏大小、顏色深度、作業系統和CPU型別 |
C、請求正文
請求頭和請求正文之間是一個空行,這個行非常重要,它表示請求頭已經結束,接下來的是請求正文,請求正文中可以包含客戶提交的查詢字串資訊:
telephone=15527177736&userType=1&
http回應格式
HTTP應答與HTTP請求相似,HTTP回應也由3個部分構成,分別是:
1、狀態行
2、回應頭(Response Header)
3、回應正文
12、Http與Https優缺點?
- 通信使用明文不加密,內容可能被竊聽,也就是被抓包分析,
- 不驗證通信方身份,可能遭到偽裝
- 無法驗證報文完整性,可能被篡改
- HTTPS就是HTTP加上加密處理(一般是SSL安全通信線路)+認證+完整性保護
12、Http優化
- 利用負載均衡優化和加速HTTP應用
- 利用HTTP Cache來優化網站
13、Http協議有那些特征?
1、支持客戶/服務器模式;2、簡單快速;3、靈活;4、無連接;5、無狀態,
參考:Http協議面試題 - 小周lucky - 博客園
HTTP協議經典面試題整理及答案詳解 - 知乎
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357077.html
標籤:其他
上一篇:華為網路配置(ACL)
下一篇:基于TCP的網路編程
