1、常用的http方法有哪些?
get:
用於請求訪問已經被uri(統一資源識別符號)識別的資源,可以通過url傳參給伺服器
post:
用於傳輸資訊給伺服器,主要功能與get方法類似,但一般推薦使用post方式。
put:
傳輸檔案,報文主體中包含檔案內容,儲存到對應uri位置。
head:
獲得報文首部,與get方法類似,只是不返回報文主體,一般用於驗證uri是否有效。
delete:
刪除檔案,與put方法相反,刪除對應uri位置的檔案。
options:
查詢相應uri支援的http方法。
2、get方法與post方法的區別
區別一:
get重點在從伺服器上獲取資源,post重點在向伺服器傳送資料;
區別二:
get傳輸資料是通過url請求,以field(字段)= value的形式,置於url後,並用"?"連線,多個請求資料間用"&"連線,如這個過程使用者是可見的;
post傳輸資料通過http的post機制,將字段與對應值封存在請求實體中傳送給伺服器,這個過程對使用者是不可見的;
區別三:
get傳輸的資料量小,因為受url長度限制,但效率較高;
post可以傳輸大量資料,所以上傳檔案時只能用post方式;
區別四:
get是不安全的,因為url是可見的,可能會洩露私密資訊,如密碼等;
post較get安全性較高;
區別五:
get方式只能支援ascii字元,向伺服器傳的中文字元可能會亂碼。
post支援標準字符集,可以正確傳遞中文字元。
3、http請求報文與響應報文格式
請求報文包含三部分:
a、請求行:包含請求方法、uri、http版本資訊
b、請求首部字段
c、請求內容實體
響應報文包含三部分:
a、狀態行:包含http版本、狀態碼、狀態碼的原因短語
b、響應首部字段
c、響應內容實體
4、常見的http相應狀態碼
200:
請求被正常處理
204:
請求被受理但沒有資源可以返回
206:
客戶端只是請求資源的一部分,伺服器只對請求的部分資源執行get方法,相應報文中通過content-range指定範圍的資源。
301:
永久性重定向
302:
臨時重定向
303:
與302狀態碼有相似功能,只是它希望客戶端在請求乙個uri的時候,能通過get方法重定向到另乙個uri上
304:
傳送附帶條件的請求時,條件不滿足時返回,與重定向無關
307:
臨時重定向,與302類似,只是強制要求使用post方法
400:
請求報文語法有誤,伺服器無法識別
401:
請求需要認證
403:
請求的對應資源禁止被訪問
404:
伺服器無法找到對應資源
500:
伺服器內部錯誤
503:
伺服器正忙
5、http1.1版本新特性
a、預設持久連線節省通訊量,只要客戶端服務端任意一端沒有明確提出斷開tcp連線,就一直保持連線,可以傳送多次http請求
b、管線化,客戶端可以同時發出多個http請求,而不用乙個個等待響應
c、斷點續傳原理
6、常見http首部字段
a、通用首部字段
(請求報文與響應報文都會使用的首部字段)
date:建立報文時間
connection:連線的管理
cache-control:快取的控制
transfer-encoding:報文主體的傳輸編碼方式
b、請求首部字段
(請求報文會使用的首部字段)
host:請求資源所在伺服器
accept:可處理的**型別
accept-charset:可接收的字符集
accept-encoding:可接受的內容編碼
accept-language:可接受的自然語言
c、響應首部字段(
響應報文會使用的首部字段)
accept-ranges:可接受的位元組範圍
location:令客戶端重新定向到的uri
server:http伺服器的安裝資訊
d、實體首部字段
(請求報文與響應報文的的實體部分使用的首部字段)
allow:資源可支援的http方法
content-type:實體主類的型別
content-encoding:實體主體適用的編碼方式
content-language:實體主體的自然語言
content-length:實體主體的的位元組數
content-range:實體主體的位置範圍,一般用於發出部分請求時使用
7、http的缺點與https
a、通訊使用明文不加密,內容可能被竊聽
b、不驗證通訊方身份,可能遭到偽裝
c、無法驗證報文完整性,可能被篡改
https就是http加上加密處理(一般是ssl安全通訊線路)+認證+完整性保護
8、http優化
利用負載均衡優化和加速http應用
9.基本http協議流程是什麼?
1.開啟http連線。一定要記住http是一種
無狀態協議
。正因為如此,對於每乙個請求你都要建立乙個新的連線。
2.初始化方法請求。這裡面將包含一些型別的方法指示符用來描述呼叫什麼方法和方法所需要的引數。
3.設定http請求頭。這裡面包含要傳送的資料型別(二進位制)和資料的總長。
4.傳送請求。將二進位製流寫到伺服器。
5.讀取請求。目標servlet程式將被呼叫並接受http請求資料。servlet程式就呼叫所有必要的引數選擇相應的方法。注意,如果這是這個客戶端的第一次請求,乙個伺服器物件的新的例項就會被建立。
6.呼叫方法。方法將會被伺服器端的物件呼叫。
7.初始化方法響應。如果呼叫的方法丟擲乙個異常,客戶將接收到出錯資訊。否則,返回的型別(如果有)將會被傳送。
8.設定http響應頭。在響應頭中,一定會設定待傳送資料的型別和長度。
9.傳送響應。二進位制資料流將從web伺服器傳送並返回給客戶端。
10.關閉連線。
面試筆試中的一些知識點
1 new delete malloc free 記憶體洩漏是指堆記憶體 heap memory 的洩漏 memory leak 堆記憶體指程式從堆中分配的,大小任意的 記憶體塊的大小可以在程式執行期決定 使用完後必須顯式釋放的記憶體。應用程式一般使用malloc,realloc,new等函式從堆中...
c c 面試筆試知識點 牛客網(1)
我最近在牛客網上做題目,每道題目都有一些小的知識點,我把它總結下來,給大家分享,希望給面試筆試的人一些幫助。有些知識點太多了,所以只寫了知識點。希望大家多多指出,共同進步,拿到乙份好的offer。1.int n 10 是陣列指標 sizeof n 4 int n 10 是指標陣列 sizeof n ...
http面試相關知識點
二 http快取分類 在web瀏覽器中輸出 具體會發生什麼?1 對 進行dns網域名稱解析,獲取相應的ip位址 2 根據ip位址,找到相應伺服器,發起tcp的三次握手。3 建立tcp連線後,發起http請求。4 伺服器響應http請求,瀏覽器獲取html 5 瀏覽器解析html 並請求html中的資...