http:超文字傳輸協議
2、http的基礎特性:可拓展協議、無狀態有會話的
3、http的元件系統包括客戶端、web伺服器和**(作用:快取、過濾、負載均衡、認證、日誌管理)
4、http報文組成(請求報文、響應報文)
典型的http會話(建立鏈結、客戶端傳送請求、伺服器響應請求)
http請求和響應都包括 起始行、請求頭、空行、body部分
請求起始行包括請求方法、請求路徑、http版本號
響應的起始行包括http版本號、響應狀態碼、文字描述狀態。
請求路徑包括:協議、主機、埠、路徑、引數、錨點
請求方法:
get:請求伺服器傳送某個資源
head:跟get方法類似,但伺服器在響應中只返回了首部,不會返回實體的主圖部分。
put:向伺服器中寫入文件
post:用來向伺服器輸入資料。
trace:主要用於診斷
options:請求web伺服器告知其支援的各種功能。
delete:請求伺服器刪除請求url中置頂的資源
get請求和post請求的區別
1)快取:get請求能快取,post請求不能
2)安全:get請求不如post請求安全,因為get請求都在url中,且會被瀏覽器儲存歷史記錄。post請求放在請求體中,更加安全。
3)限制:url有長度限制,會干預get請求,這是瀏覽器決定的
4)編碼:get請求只能進行url編碼,只能接收ascit字元,而post沒有限制
5)從tcp角度,get請求會把請求報文一次性發出去,而post會分為兩個tcp資料報,首先發header部分,如果伺服器響應100然後發body部分(火狐瀏覽器的post只發乙個包)
一些常見的http狀態碼:
100~199:資訊性狀態碼。指定客戶端應相應的某些動作,代表請求已被接受,需要繼續處理。
200~200:成功狀態碼,表示成功處理了請求的狀態碼
200(成功):表示從客戶端發來的請求在伺服器端被正確處理
201(已建立): 表示請求成功並且伺服器建立了新的資源
202(已接受):伺服器已接受請求但尚未處理
204(無內容):伺服器成功處理了請求但沒有返回任何內容
205(重置內容):伺服器成功處理了請求但沒有返回任何內容
206(部分內容):伺服器成功處理了部分get請求
300~399:重定向狀態碼,表示要完成請求需要進一步操作
300 (多種選擇) 針對請求,伺服器可執行多種操作。 伺服器可根據請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。
301 (永久移動) 請求的網頁已永久移動到新位置。 伺服器返回此響應(對 get 或 head 請求的響應)時,會自動將請求者轉到新位置。
302 (臨時移動) 伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。
303 (檢視其他位置) 請求者應當對不同的位置使用單獨的 get 請求來檢索響應時,伺服器返回此**。
304 (未修改) 自從上次請求後,請求的網頁未修改過。 伺服器返回此響應時,不會返回網頁內容。
305 (使用**) 請求者只能使用**訪問請求的網頁。 如果伺服器返回此響應,還表示請求者應使用**。
307 (臨時重定向) 伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。
400~499:客戶端錯誤狀態碼
400 (錯誤請求) 伺服器不理解請求的語法。
401 (未授權) 請求要求身份驗證。 對於需要登入的網頁,伺服器可能返回此響應。
403 (禁止) 伺服器拒絕請求。
404 (未找到) 伺服器找不到請求的網頁。
405 (方法禁用) 禁用請求中指定的方法。
406 (不接受) 無法使用請求的內容特性響應請求的網頁。
407 (需要**授權) 此狀態**與 401(未授權)類似,但指定請求者應當授權使用**。
408 (請求超時) 伺服器等候請求時發生超時。
409 (衝突) 伺服器在完成請求時發生衝突。 伺服器必須在響應中包含有關衝突的資訊。
410 (已刪除) 如果請求的資源已永久刪除,伺服器就會返回此響應。
411 (需要有效長度) 伺服器不接受不含有效內容長度標頭字段的請求。
412 (未滿足前提條件) 伺服器未滿足請求者在請求中設定的其中乙個前提條件。
413 (請求實體過大) 伺服器無法處理請求,因為請求實體過大,超出伺服器的處理能力。
414 (請求的 uri 過長) 請求的 uri(通常為**)過長,伺服器無法處理。
415 (不支援的**型別) 請求的格式不受請求頁面的支援。
416 (請求範圍不符合要求) 如果頁面無法提供請求的範圍,則伺服器會返回此狀態**。
417 (未滿足期望值) 伺服器未滿足"期望"請求標頭字段的要求。
500~599:服務端錯誤狀態碼
500 (伺服器內部錯誤) 伺服器遇到錯誤,無法完成請求。
501 (尚未實施) 伺服器不具備完成請求的功能。 例如,伺服器無法識別請求方法時可能會返回此**。
502 (錯誤閘道器) 伺服器作為閘道器或**,從上游伺服器收到無效響應。
503 (服務不可用) 伺服器目前無法使用(由於超載或停機維護)。 通常,這只是暫時狀態。
504 (閘道器超時) 伺服器作為閘道器或**,但是沒有及時從上游伺服器收到請求。
505 (http 版本不受支援) 伺服器不支援請求中所用的 http 協議版本。
https也是通過http協議進行資訊傳輸,但是採用tls協議進行了加密
http建立鏈結的三次握手和四次揮手
第一次握手:建立連線,客戶端a傳送syn=1、隨機產生sep=client_isn的資料報到伺服器b。等待伺服器確認
第二次握手:伺服器b收到請求後確認聯機(可以接受資料),會發起第二次請求,ack=(a的sep+1)、syn=1,隨機產生sep=client_isn的資料報到a。
第三次握手:a收到後檢查ack是否正確。若正確,a會再傳送確認包ack=(b的sep+1)、ack=1,伺服器b收到後確認seq與ack的值,若正確建立連線。
第一次揮手:當客戶端無資料要傳輸,會傳送fin碼告訴伺服器,我傳送完畢了
第二次揮手:當服務端接受完畢後,告訴客戶端ack碼,告訴客戶端你可以把資料通道關閉了
第三次揮手:當服務端傳送完畢之後,也會傳送fin碼,告訴客戶端可以關閉
第四次揮手:客戶端接收完畢,同樣傳送ack碼,告訴伺服器資料接受完畢,你可以關閉。
關於HTTP的一些學習
第一次進入乙個 時,本地無快取,response成功返回200 伺服器在response header裡,設定了etag和last modify,如下圖 etag欄位將資源唯一性的標識,如果資源有更新,etag值也將變化 last modify表明了在伺服器端最後發生改變的時間 瀏覽器儲存這個eta...
轉 設計師也需要了解的一些前端知識
一 常見視覺效果是如何實現的 一些事 關於文字效果網際網路的一些事 文字自身屬性相關的效果css中都是有相對應的樣式的,如字型大小 行高 加粗 傾斜 下劃線等,但是一些特殊的效果,主要表現為ps中圖層樣式中的效果,css是無能為力的。但是css也在不斷發展,在css3中已經新增了文字陰影的效果,可惜...
關於qsort函式的一些了解
void qsort void base,nelem,width,cmp base 為要排序陣列的首位址 nelem 為要排序陣列的長度 width 為要排序陣列元素的大小 所佔記憶體空間的大小 簡單示例 對int num 100 中的元素從小到大排序。int num 100 int cmp con...