1、什麼是http協議html
HTTP是一個應用層協議,無狀態的,端口號爲80。主要的版本有1.0/1.1/2.0.html5
- HTTP/1.* 一次請求-響應,創建一個鏈接,用完關閉;
- HTTP/1.1 串行化單線程處理,
- 能夠同時在同一個tcp連接上發送多個請求,
- 可是隻有響應是有順序的,只有上一個請求完成後,下一個才能響應。
- 一旦有任務處理超時等,後續任務只能被阻塞(線頭阻塞);
- HTTP/2 並行執行。某任務耗時嚴重,不會影響到任務正常執行
2、什麼是websocketweb
- Websocket是html5提出的一個協議規範,
- 本質上是一個基於tcp,
- 先經過HTTP/HTTPS協議發起一條特殊的http請求進行握手後
- WebSocket優點: 瀏覽器和服務器只須要要作一個握手的動做,
- 在創建鏈接以後,雙方能夠在任意時刻,相互推送信息。
- 同時,服務器與客戶端之間交換的頭信息很小。
3、什麼是長鏈接、短鏈接瀏覽器
4、http和websocket的長鏈接區別服務器
- HTTP1.1經過使用Connection:keep-alive進行長鏈接,
- 在一次 TCP 鏈接中能夠完成多個 HTTP 請求,
- 可是對每一個請求仍然要單獨發 header,
- Keep-Alive不會永久保持鏈接,它有一個保持時間,
- 能夠在不一樣的服務器軟件(如Apache)中設定這個時間。
- 這種長鏈接是一種「僞連接」
- websocket的長鏈接,
- 是一個真的全雙工。
- 長鏈接第一次tcp鏈路創建以後,
- 後續數據能夠雙方都進行發送,不須要發送請求頭。
- keep-alive雙方並無創建正真的鏈接會話,
- 服務端能夠在任何一次請求完成後關閉。
- WebSocket 它自己就規定了是正真的、雙工的長鏈接,