Web開發中需要了解的東西

jopen 10年前發布 | 22K 次閱讀 Web開發

Web開發中需要了解的東西,作為一個web開發人員,還是有些東西需要大家去了解的。

Web開發中需要了解的東西

接口和用戶體驗

1.首先,需要確保你的網站能夠兼容絕大部分的瀏覽器,最好能夠兼容下面的瀏覽器

  • 最新的Gecko引擎(Firefox)

    </li>

  • 最新的webkit引擎(chrome瀏覽器)

    </li>

  • IE瀏覽器(測試兼容性的時候可以使用微軟IE的 Application Compatibility VPC Images

    </li>

  • opera瀏覽器

    </li> </ul>

    2.多考慮考慮人們是怎么來訪問你的網站的而不是那些主流的瀏覽器,手機,讀屏軟件(ipad),搜索引擎

    3.部署Staging:怎么部署網站的更新而不會影響用戶的訪問(版本控制,自動化build,備份,回滾)

    4.千萬不要直接給用戶顯示不友好的錯誤信息

    5.千萬不要把用戶的郵件 地址以明文顯示出來,這樣會被爬蟲并讓用戶的郵箱被垃圾郵件搞死。

    6.為用戶的鏈接添加上rel = "nofollow"的屬性以避免垃圾網站的干擾,

    ps: nofollow是html的屬性,用于通知搜索引擎:這個連接所指向的網頁非我能控制的,對其內容不予置評。

    或者簡單的說,該鏈接不是對目標網站或者網頁的訪問,這樣搜索引擎就不會再訪問這個鏈接了。

    7.為網站建立一些限制,這個屬于安全性的范疇了(例如 短信認證,限制次數,captcha)

    8.學習如何做 Progressive Enhancement 

    PS:包含的內容:1.基礎的內容和功能應該可以被所有的瀏覽器存取,2.頁面布局的應該使用外鏈的css鏈接

    3.javascript 也應該是外部鏈接,還應該是unobtrusive的,4.應該讓用戶設置他們的偏好

    9.如果POST成功,要在POST方法后重定向網站,這樣可以阻止用戶通過刷新頁面重復提交。

    10.關注Accessibility

    安全

    1.關注安全,OWASP(open web application security project)

    2.了解什么是SQL注入攻擊,并知道如何阻止這種攻擊

    3.永遠不要相信用戶的輸入(包括cookies,因為這也是用戶輸入的)

    4.對用戶的口令進行hash,并使用salt,以防止rainbow攻擊

    ps:Hash算法可以使用MD5或者SHA1等,

    對口令使用salt:在用戶設定密碼的時候,system會產生另外一個random string (salt).在database存儲的時候是

    salt+passworld產生的MD5sum以及salt,當要驗證密碼的時候就把user輸入的string加上使用者的salt,產生md5sum來比較,理論上面用salt可以大幅度的讓密碼難以破解,相同的密碼除非剛好salt相同,最后存儲在database上的內容也是不一樣的。

    關于彩虹表攻擊,意思就像密碼字典表,但不同的是,rainbow表存的是已經被hash過的密碼,而且其查找密碼的速度更加的快速,這樣可以更快的攻擊了。

    使用慢一點的hash算法來保存口令,例如bcrypt或者scrypt,

    5.不要試圖自己去發明或者創造一個自己的fancy的認證系統。

    6.了解處理信用卡的一些規則。

    7.使用SSL/HTTPS 來加密傳輸登錄頁面或者是任何可能有敏感信息的頁面。

    8.知道如何對付session劫持

    9.避免跨腳本攻擊(XSS)

    10避免跨站偽造請求攻擊(cross site request forgeries)(XSRF)

    11 保持你的系統里面的所有軟件更新到最新的patch

    12. 保證你的數據庫連接是安全的

    13.確保你能了解最新的攻擊技術,以及你的系統的脆弱性。

    性能

    1. 只要需要,請實現cache機制,了解并合理使用 HTTP caching 以及 HTML5 Manifest

      </li>

    2. 頁面優化-千萬不要使用20kb的圖片平鋪網頁背景。

      </li>

    3. 學習如何gzip/deflate 網頁 (deflate 更好)

      </li>

    4. 把多個css文件和javascript文件合并成為一個,這樣可以減少瀏覽器的網絡連接個數,并使用gzip壓縮反復被使用到的文件

      </li>

    5. 學習一下 Yahoo Exceptional Performance 這個網站上面的東西

      </li>

    6. 為那些小的圖片使用 css image sprites (最小化HTTP請求)

      </li>

    7. 繁忙的網絡應該考慮把網頁的內容分開存放在不同的域名下面(使用專門的圖片服務器,或者專門的ajax服務器)

      </li>

    8. 靜態頁面應該放在一個不使用cookies的獨立域名下面,因為所有在同一個域名或者子域名下面的cookies會被這個域名下面的請求一同發送,另外一個好的選擇方法就是 content delivery network 

      </li>

    9. 使用單個頁面的合同談判請求數最小化

      </li>

    10. 為javascript使用 google closure compiler 或者其他壓縮工具

      </li>

    11. 確認一下你的網站的 favicon.ico 文件放在網站的根下,如./favicon.ico,瀏覽器會自動的請求這個文件。就算這個圖標文件沒有在你的網頁中明顯說明,瀏覽器也會請求的,如果你沒有這個文件,就會發生大量的404錯誤,這樣會造消耗你的服務器帶寬。

      </li> </ol>

      SEO(搜索引擎優化)

      1. 使用搜索引擎最喜歡的url (例如 example.com/pages/44-article-title而不是  example.com/index.php?page=45

        </li>

      2. 如果你的動態頁面需要使用到 # , 那么請換成 #! , 而在服務器端你需要處理¥

        </li>

      3. 別使用“click here”這樣的鏈接,這樣一來無法SEO,而且對于一些需要使用讀屏的人來說很不友好,

        </li>

      4. 做一個 XML sitemap ,并放在網站的跟下 /sitemap.xml ,這樣可以讓搜索引擎更好的了解網站圖

        </li>

      5. 當你有個多個URL指向同一個url的時候,使用 <link rel = "canonical" .../> 

        </li>

      6. 使用google webmaster tools 和 yahoo site explorer 

        </li>

      7. 安裝google analytics 

        </li>

      8. 了解robots.txt 和搜索引擎爬蟲是如何工作的。

        </li>

      9. 重定向請求,使用(301重定向網站),如果你要把www.example.com 定向到 example.com 或者是其他的變更,這樣可以防止google的rank因為域名的改變而發生改變。

        </li>

      10. 知道并不是所有的爬蟲都是好的,也有些爬蟲的行為并不好,比如向你的網站發起大量請求會造成服務器的性能下降。

        </li> </ol>

        技術

        1. 了解什么是HTTP 比如: GET, POST, sessions,cookies 了解什么是 statusless 無狀態

          </li>

        2. 讓你的XHTML/HTML 和 css 復合W3C規范,并確認他們都是合格的,我們的目標是避免瀏覽器的 quirks mode,并且可以讓其更容易地能和非標準的瀏覽器工作,比如讀屏器移動設備。

          </li>

        3. 了解瀏覽器是怎么處理javascript的,最好能夠了解為什么有些js代碼是在頁面前面,有些則是在頁面后面的

          </li>

        4. 了解瀏覽器是怎么裝載javascript,css和其他資源的,了解其對視覺上的影響。

          </li>

        5. 了解javascript的sandbox是怎么工作的,尤其當你想使用iframes的時候。

          </li>

        6. 注意javascript是可以被禁止掉的,這樣會讓你的ajax失效掉。

          </li>

        7. 學習301 和 302 轉向的區別。

          </li>

        8. 盡可能多的學習你的部署平臺,比如操作系統,web server ,apache/nginx 防火墻,數據庫,等等

          </li>

        9. 考慮使用一個 Reset style sheet 

          </li>

        10. 考慮下使用javascript框架

          </li>

        11. 把視覺設計和js框架組合起來考慮,考慮使用一個service,比如Google libraries api 來轉載框架,這樣就可以讓瀏覽器可能早的把這些緩存起來,而不是從你的網站上下載。

          </li> </ol>

          Bug fixing

          1. 要明白你會花20%的時間寫代碼,而80%的時間維護,所以小心你的編碼

            </li>

          2. 設計一個好的錯誤報告機制

            </li>

          3. 設計一個入口可以讓人們聯系到你并給你建議和批評

            </li>

          4. 為你開發出來的系統形成文檔,這樣可以讓后來的人容易維護你的軟件和系統。

            </li>

          5. 頻繁備份

            </li>

          6. 使用一個版本控制系統來保存你的代碼 例如 svn 或者 git

            </li>

          7. 確保足夠的日志,方便你快速的定位問題

            </li>

          8. 當你寫日志的時候,確保你記錄的日志捕獲了你的處理和處理異常,報告和分析日志可以讓知道你的網站的問題。

            </li> </ol> 原文地址:http://coolshell.cn/articles/6043.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!