http協(xié)議:
http是超文本傳輸協(xié)議(Hyper Text Transfer Protocol),是一種無狀態(tài)的協(xié)議,HTTP在客戶端和服務(wù)器之間以request-responseprotocol工作,通常發(fā)送請求就是http中的兩種: GET/POST
長連接:
???????早期在設(shè)計網(wǎng)絡(luò)通信, 其實沒有考慮長短連接的問題.
設(shè)計這個連接源于我們連接本身很復(fù)雜. 早期在設(shè)計連接的時候采用三次握手的模型.
早期在設(shè)計連接的時候 只是考慮數(shù)據(jù)的傳輸 因此 只要連接上 數(shù)據(jù)傳輸完畢 即斷開連接. 這個現(xiàn)在稱為 短連接.
但是今天頁面發(fā)展的非辰鼋校快, 為了保證可以下載完整的數(shù)據(jù), 不可能頻繁的連接接收數(shù)據(jù).
因此考慮將連接數(shù)據(jù)傳輸結(jié)束后在一定時間內(nèi)保持連接, 如果還有數(shù)據(jù)傳輸, 則時間重新計算.
如果超出時間范圍 再 斷開連接. 將這樣的連接稱為長連接.
GET--從指定的服務(wù)器中獲取數(shù)據(jù)
POST--提交數(shù)據(jù)給指定的服務(wù)器處理
使用GET請求時,查詢字符串被拼接在url后面作為參數(shù)一起發(fā)送到服務(wù)器
特點:
<li>GET 請求能夠被緩存
<li>GET 請求會保存在瀏覽器的瀏覽記錄中
<li>以GET請求的URL能夠保存為瀏覽器書簽
<li>GET請求有長度限制
<li>GET請求主要用以獲取數(shù)據(jù)
使用POST請求時,只需要將表單中的 method 屬性修改為 post 即可發(fā)送 post 請求
get 請求 與 post 請求有什么區(qū)別?
1.GET 請求謂詞 為 get, 參數(shù)會附在 url 地址中傳遞, get 請求會有緩存
2.POST 請求謂詞 為 post, 參數(shù)會在報文中提供, post 請求沒有緩存. post 會增加一個新的 MIME 類型,這個 mime 類型是為了告訴服務(wù)器如何解釋參數(shù)
異同
????????- GET 請求會將數(shù)據(jù)暴露在 url 地址中, 因此敏感信息應(yīng)該使用 post 請求.
????????- 由于 GET 請求時將數(shù)據(jù)放在 url 地址里面 而不同的瀏覽器 url 地址的容量是有限的. 如果請求發(fā)送的數(shù)據(jù)過大不易使用 GET.
????????- 由于 GET 請求使用 url 地址, 也字符串來提交參數(shù), 因此無法處理二進(jìn)制數(shù)據(jù), 因此要提交文件數(shù)據(jù), 必須使用 POST
HTML5的websocket,實現(xiàn)了持久的瀏覽器和服務(wù)器通信:
通常我們用http協(xié)議,只能實現(xiàn)客戶端發(fā)送請求給服務(wù)器,服務(wù)器返回數(shù)據(jù),只有請求的情況下才會返回數(shù)據(jù),但如果服務(wù)器連續(xù)更新狀態(tài),那么我們的客戶端就收不到服務(wù)器的實時數(shù)據(jù),這種單項的數(shù)據(jù)傳遞,就注定了我們客戶端如果想獲取就非常困難,我們只能使用"輪詢",m每隔一段時間發(fā)送一個詢問,詢問服務(wù)器有沒有新的數(shù)據(jù),最典型的使用場景就是聊天室,"輪詢"的效率低,非常浪費網(wǎng)絡(luò)資源,這時候html5的websocket就被發(fā)明了
最大的特點:就是服務(wù)器可以主動給客戶端發(fā)送信息,客戶端也可以主動給服務(wù)器發(fā)送信息,真正實現(xiàn)了數(shù)據(jù)的實時更新,是服務(wù)器技術(shù)的一種方式