1、HTTP協(xié)議的簡介
底層協(xié)議是tcp協(xié)議
- 基本概念:
- 協(xié)議:指計算機通信網(wǎng)絡中兩臺計算機之間進行通信所必須共同遵守的規(guī)定或規(guī)則
- Http協(xié)議:超文本傳輸協(xié)議(HTTP)是一種通信協(xié)議,它允許將超文本標記語言(HTML)文檔從Web服務器傳輸?shù)娇蛻舳说臑g覽器
- Uri和Url的區(qū)別:
Uri:是uniform responrce identifier,統(tǒng)一資源標識符,用來唯一標識一個資源
file://a:1234/b/c/d.txt
1、URL是 uniform resource locator,統(tǒng)一資源定位器,它是一種具體的Uri,即url可以用來標識一個資源,而且還指明如何locate這個資源
www.baidu.com
2、URL三個組成部分
(url是具體的uri,強調(diào)的是路徑)
- 協(xié)議
- 存有該資源的主機ip地址
- 主機資源的具體地址
2、HTTP協(xié)議的特點
- 簡單快速
- 無連接(限制每次只處理一個請求)
- 無狀態(tài)(對處理的事務沒有記憶)
3、request/response原理
協(xié)議:GET HTTP1.1
主機:Host
操縱系統(tǒng):UserAgent
接收數(shù)據(jù)類型:Accept
4、HTTP協(xié)議中比較容易混淆的知識點
-
http1.1/http1.0的區(qū)別
①http1.0產(chǎn)生的背景
超文本傳輸協(xié)議(HyperText Transfer Protocol)伴隨著計算機網(wǎng)絡和瀏覽器的誕生,HTTP1.0也隨之而來,處于計算機網(wǎng)絡中的應用程序
②http1.0所做的優(yōu)化
帶寬:現(xiàn)階段已經(jīng)解決
延遲:①瀏覽器阻塞:瀏覽器對于同一個域名,同時只能用4個連接。
延遲:②DNS查詢:瀏覽器需要知道目標服務器的IP才能建立連接
延遲:③建立連接:三次握手③http1.1/http1.0的具體區(qū)別
緩存處理
帶寬優(yōu)化及網(wǎng)絡連接的作用
Host頭處理
長連接(傳輸多個http連接,避免每次請求創(chuàng)建連接)④http1.1和http1.0存在的問題
A:HTTP1.x在傳輸數(shù)據(jù)時,每次需要重新建立連接,無疑增加了大量延時時間B:HTTP1.x在傳輸數(shù)據(jù)時,所有的傳輸內(nèi)容都是明文,客戶端和服務器端都無法驗證對方身份(無法保證安全)
C:HTTP1.x在使用時,header里攜帶的內(nèi)容過大,在一定程度上增加了傳輸成本(浪費流量傳入過多的header信息)
D:雖然HTTP1.x支持keep-alive,來彌補多次創(chuàng)建連接產(chǎn)生的延遲,但是keep-alive使用多了同樣會給服務端帶來大量的性能壓力
-
get/post方法區(qū)別
提交數(shù)據(jù)(get獲取資源post更新資源)
提交數(shù)據(jù)的大小有限制(url有限制,post提交的是body)
取得變量的值Request.QueryString vs Request.Form
安全問題
-
cookie和session
什么是cookie
Cookie技術是客戶端的解決方案,Cookie就是由服務器發(fā)給客戶端的特殊信息,而這些信息以文本文件的方式存放在客戶端,然后客戶端每次向服務器發(fā)送請求的時候都會帶上這些特殊的信息。(請求成功后server向client設置cookie,相當發(fā)放獨一無二的通行證來辨別用戶)-
什么是session
Session是另一種記錄客戶端狀態(tài)的機制,不同的Cookie保存在客戶端瀏覽器中,而Session保存在服務器上??蛻舳藶g覽器訪問服務器的時候,服務器把客戶端信息以某種形式記錄在服務器上。①創(chuàng)建一個session(服務運行時)
②在創(chuàng)建了Session的同時,服務器會為該Session生成唯一的Session id
③在Session被創(chuàng)建之后,就可以調(diào)用Session相關的方法往Session增加內(nèi)容
④當客戶端再次發(fā)送請求的時候,會將這個Session id帶上,服務器接受到請求之后就會依據(jù)Session id找到對應的Seesion -
區(qū)別
- 存放位置不同
- 存取方式不同(cookie是字符串 session任何數(shù)據(jù))
- 安全性
- 有效期的不同
- 對服務器造成的壓力不同