隨著做的項(xiàng)目越來越多潦嘶,越來越感覺到HTTP這個東西的重要性贰锁。今天把基礎(chǔ)的知識總結(jié)一下巷屿。
1xx:指示信息--表示請求已接受固以,繼續(xù)處理
2xx:成功--表示請求已被成功接受、理解嘱巾、接受
3xx:重定向--要求完成請求必須進(jìn)行更進(jìn)一步的操作
4xx:客戶端錯誤--請求有語法錯誤或請求無法實(shí)現(xiàn)
5xx:服務(wù)器端錯誤--服務(wù)器未能實(shí)現(xiàn)合法的請求
200 OK? ? ? ? ? ? ? ? ? ? ? ? //客戶端請求成功
400 Bad Request? ? ? ? ? ? ? //客戶端請求有語法錯誤憨琳,不能被服務(wù)器所理解
401 Unauthorized? ? ? ? ? ? ? //請求未經(jīng)授權(quán),這個狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用
403 Forbidden? ? ? ? ? ? ? ? //服務(wù)器收到請求旬昭,但是拒絕提供服務(wù)
404 Not Found? ? ? ? ? ? ? ? //請求資源不存在篙螟,eg:輸入了錯誤的URL
500 Internal Server Error? ? //服務(wù)器發(fā)生不可預(yù)期的錯誤
502 Bad Gateway是指錯誤網(wǎng)關(guān)? ? //php語言中語法錯誤 通常也會返給頁面這個錯誤
503 Server Unavailable? ? ? ? //服務(wù)器當(dāng)前不能處理客戶端的請求,一段時間后可能恢復(fù)正常
HTTP工作原理
1问拘,瀏覽器向DNS服務(wù)器請求解析該URL中的域名所對應(yīng)的IP地址;
2, 解析出IP地址后遍略,根據(jù)該ip地址和默認(rèn)端口80,和服務(wù)器建立TCP鏈接骤坐;
3绪杏,瀏覽器發(fā)出讀取文件的http請求,該請求保文作為tcp三次握手的第三個報(bào)文發(fā)給服務(wù)器纽绍;
4蕾久,服務(wù)器對瀏覽器作出響應(yīng),并把對應(yīng)的html文本發(fā)給瀏覽器
5顶岸,釋放tcp鏈接(若connection 模式為close腔彰,則服務(wù)器主動關(guān)閉TCP連接,客戶端被動關(guān)閉連接辖佣,釋放TCP連接;若connection 模式為keepalive霹抛,則該連接會保持一段時間,在該時間內(nèi)可以繼續(xù)接收請求);
6卷谈,瀏覽器拿到html文本并顯示內(nèi)容
GET和POST請求的區(qū)別杯拐,
1,GET提交的數(shù)據(jù)會放在URL之后,以?分割URL和傳輸數(shù)據(jù)端逼,參數(shù)之間以&相連朗兵,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的數(shù)據(jù)放在HTTP包的Body中.
2,GET提交的數(shù)據(jù)大小有限制(因?yàn)闉g覽器對URL的長度有限制)顶滩,而POST方法提交的數(shù)據(jù)沒有限制.
3余掖,GET方式需要使用Request.QueryString來取得變量的值,而POST方式通過Request.Form來獲取變量的值礁鲁。
4盐欺,GET方式提交數(shù)據(jù),會帶來安全問題仅醇,比如一個登錄頁面冗美,通過GET方式提交數(shù)據(jù)時,用戶名和密碼將出現(xiàn)在URL上析二,如果頁面可以被緩存或者其他人可以訪問這臺機(jī)器粉洼,就可以從歷史記錄獲得該用戶的賬號和密碼.