1. 程式人生 > >網絡傳輸協議

網絡傳輸協議

都是 用戶體驗 bug 抓包 網絡傳輸 方式 幫我 精確 郵件傳輸

指服務器和客戶端間進行通信時的約束和規範,客戶端與服務端的數據交互並不是雜亂無章的,需要遵照(基於)一定的規範進行。

1,常見協議:

  1、HTTP、HTTPS 超文本傳輸協議

  2、FTP 文件傳輸協議

  3、SMTP 簡單郵件傳輸協議

  HTTP協議:即超文本傳輸協議,網站是基於HTTP協議的,例如網站的圖片、CSS、JS等都是基於HTTP協議進行傳輸的。HTTP協議是由從客戶機到服務器的請求(Request)和從服務器到客戶機的響應(Response)進行了約束和規範。即HTTP協議主要由請求和響應構成。常用請求方法 POST、GET、put、delete

2,請求/請求報文:

  

請求由客戶端發起,其規範格式為:請求行、請求頭、請求主體。

技術分享

  1、請求行:由請求方式、請求URL和協議版本構成

  2、請求頭:

    Host:localhost請求的主機

    Cache-Control:max-age=0控制緩存

    Accept:*/* 接受的文檔MIME類型

    User-Agent:很重要

    Referer:從哪個URL跳轉過來的

    Accept-Encoding:可接受的壓縮格式

    If-None-Match:記錄服務器響應的ETag值,用於控制緩存

    此值是由服務器自動生成的

    If-Modified-Since:記錄服務器響應的Last-Modified值

    此值是由服務器自動生成的

  3、請求主體:即傳遞給服務端的數據

註:當以post形式提交表單的時候,請求頭裏會設置

Content-Type: application/x-www-form-urlencoded,以get形式當不需要

3,響應/響應報文:

  響應由服務器發出,其規範格式為:狀態行、響應頭、響應主體。

技術分享

  狀態行:由協議版本號、狀態碼和狀態信息構成

  響應頭:

    Date:響應時間

    Server:服務器信息

    Last-Modified:資源最後修改時間

    由服務器自動生成

    ETag:資源修改後生成的唯一標識

    由服務器自動生成

    Content-Length:響應主體長度

    Content-Type:響應資源的MIME類型

    MIME是標識文件類型的,文件後綴並不能正確無誤的標識文件的類型。

思考?客戶端與服務器間傳遞數據時,是以什麽形式傳輸的?

客戶端與服務器在進行數據傳輸的時候都是以字節形式進行的,咱們可以理解成是以文本形式傳輸,這時瀏覽器就需要明確知道該怎麽樣來解析這些文本形式的數據,MIME就是明確告知瀏覽器該如何來處理。

  響應主體:

      即服務端返回給客戶端的內容;

      狀態碼

    技術分享

常見的有200代表成功、304文檔未修改、403沒有權限、404未找到、500服務器錯誤

4,調試工具:

  利用HTTP抓包工具在開發中可以幫我們進行調試,常用抓包工具HttpWatch、Fiddler、Charles、FireBug等

  瀏覽器插件

  Firebug、HttpWatch、chrome dev tools

  代理軟件

  Charles、Fiddler

5,協商緩存 (性能優化):

此知識點屬性擴展內容,不做具體分析

前端優化雅虎35條

http://www.tuicool.com/articles/J3uyaa

重繪&回流

http://www.zhangxinxu.com/wordpress/2010/01/%E5%9B%9E%E6%B5%81%E4%B8%8E%E9%87%8D%E7%BB%98%EF%BC%9Acss%E6%80%A7%E8%83%BD%E8%AE%A9javascript%E5%8F%98%E6%85%A2%EF%BC%9F/

利用瀏覽器的緩存機制,可以有效的減少HTTP的請求,提高頁面加載速度,增強用戶體驗,同時也能極大的減輕服務器的負擔,結合HTTP協議,緩存協商就是根據HTTP協議實現緩存控制的一種機制。

問題:是否見過某些網站CSS地址後面會帶有一些參數,通常為xxx.css?cache=20160106形式

這種做法是用來強制清除緩存的,實際開發過程中,每當新功能上線時最容易引起BUG的即CSS的緩存,但是瀏覽器的緩存能減少請求,如果每次都強制清除,會對性能有損失,所以控制瀏覽器緩存成為前端性能化的一個重點

1、Last-Modified時間精確到了秒,但如果1秒內修改了多次,並不能精確的更新緩存。

2、ETag則是判斷文件內容任何改變後,便會由服務器自動生成一個唯一標識。

3、Expires 過期時間,HTTP1.0的規範,一個絕對的時間

4、Cache-Control HTTP1.1規範,設置過期時間,優先級高於Expires。

技術分享

技術分享

網絡傳輸協議