什么是HTTP協(xié)議
超文本傳輸協(xié)議(HTTP)是一種通信協(xié)議,它允許將超文本標(biāo)記語言(HTML)文檔從Web服務(wù)器傳送到客戶端的瀏覽器。
當(dāng)我們輸入U(xiǎn)RL后,瀏覽器給Web服務(wù)器發(fā)送了一個(gè)Request, Web服務(wù)器接到Request后進(jìn)行處理,生成相應(yīng)的Response,然后發(fā)送給瀏覽器, 瀏覽器解析Response中的HTML,這樣我們就看到了網(wǎng)頁。請求Request 有可能是經(jīng)過了代理服務(wù)器,最后才到達(dá)Web服務(wù)器的。
schema://host[:port#]/path/.../[?query-string][#anchor]
scheme?????????????? 指定低層使用的協(xié)議(例如:http, https, ftp)
host?????????????????? HTTP服務(wù)器的IP地址或者域名
port#???????????????? HTTP服務(wù)器的默認(rèn)端口是80,這種情況下端口號可以省略。如果使用了別的端口,必須指明,例如 http://www.cnblogs.com:8080/
path?????????????????? 訪問資源的路徑
query-string?????? 發(fā)送給http服務(wù)器的數(shù)據(jù)
anchor-???????????? 錨
GET和POST方法
GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息。
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ù),會帶來安全問題,比如一個(gè)登錄頁面,通過GET方式提交數(shù)據(jù)時(shí),用戶名和密碼將出現(xiàn)在URL上,如果頁面可以被緩存或者其他人可以訪問這臺機(jī)器,就可以從歷史記錄獲得該用戶的賬號和密碼.
常見狀態(tài)碼:200/400/404/500/503
狀態(tài)碼用來告訴HTTP客戶端,HTTP服務(wù)器是否產(chǎn)生了預(yù)期的Response.
HTTP/1.1中定義了5類狀態(tài)碼, 狀態(tài)碼由三位數(shù)字組成,第一個(gè)數(shù)字定義了響應(yīng)的類別
1XX? 提示信息 - 表示請求已被成功接收,繼續(xù)處理
2XX? 成功 - 表示請求已被成功接收,理解,接受;
3XX? 重定向 - 要完成請求必須進(jìn)行更進(jìn)一步的處理;
4XX? 客戶端錯(cuò)誤 -? 請求有語法錯(cuò)誤或請求無法實(shí)現(xiàn);
5XX? 服務(wù)器端錯(cuò)誤 -?? 服務(wù)器未能實(shí)現(xiàn)合法的請求;
400 Bad Request? 客戶端請求與語法錯(cuò)誤,不能被服務(wù)器所理解
404 Not Found? 請求資源不存在(輸錯(cuò)了URL)
500 Internal Server Error 服務(wù)器發(fā)生了不可預(yù)期的錯(cuò)誤
503? Server Unavailable 服務(wù)器當(dāng)前不能處理客戶端的請求,一段時(shí)間后可能恢復(fù)正常
cookie 和session 的區(qū)別
1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙考慮到安全應(yīng)當(dāng)使用session。
3、session會在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能。
考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE。
4、單個(gè)cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie。
5、所以將登陸信息等重要信息存放為SESSION,其他信息如果需要保留,可以放在COOKIE中。