多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 互聯(lián)網(wǎng) > 在發(fā)布站點(diǎn)前,Web開(kāi)發(fā)者需要關(guān)注哪些技術(shù)細(xì)節(jié)?

在發(fā)布站點(diǎn)前,Web開(kāi)發(fā)者需要關(guān)注哪些技術(shù)細(xì)節(jié)?

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-09-06 11:58:24 閱讀次數(shù):2690次

【編者按】在網(wǎng)站發(fā)布前,開(kāi)發(fā)者需要關(guān)注有許多的技術(shù)細(xì)節(jié),比如接口設(shè)計(jì)、用戶體驗(yàn)、安全性、Web標(biāo)準(zhǔn)、性能、SEO等,倘若一個(gè)疏忽就會(huì)影響到整體的體驗(yàn)效果。Stackexchange上有人提出:作為一名Web開(kāi)發(fā)者,哪些技術(shù)細(xì)節(jié)是需要考慮的?作者Hedgehog對(duì)該文進(jìn)行了編譯,這些資源有助于你了解一些關(guān)鍵技術(shù),比如HTML、HTTP、XML、CSS、JavaScript、瀏覽器兼容性,減少網(wǎng)站加載時(shí)間的技巧、XML站點(diǎn)地圖、W3C規(guī)范等。一起來(lái)看下:


問(wèn):對(duì)于一個(gè)Web開(kāi)發(fā)人員來(lái)說(shuō),在發(fā)布一個(gè)站點(diǎn)之前,他需要處理哪些細(xì)節(jié)性的問(wèn)題。假如Jeff Atwood能在站點(diǎn)上忽略了對(duì)HttpOnly cookies,sitemaps和cross-site request forgeries的關(guān)注,那我還能忽略些什么呢?

對(duì)于一個(gè)設(shè)計(jì)或提供站點(diǎn)內(nèi)容的人來(lái)說(shuō),他們總認(rèn)為站點(diǎn)的可用性及內(nèi)容總比這個(gè)平臺(tái)重要的多,當(dāng)然在這個(gè)方面,Web開(kāi)發(fā)人員沒(méi)有什么話語(yǔ)權(quán)。對(duì)于一 個(gè)Web開(kāi)發(fā)人員來(lái)說(shuō),其更多需要關(guān)注的是站點(diǎn)的穩(wěn)定性,是否表現(xiàn)良好,安全性,是否滿足了其他商業(yè)目標(biāo)(例如花費(fèi)不少太高,構(gòu)建時(shí)間不少太長(zhǎng),在 Google提供的搜索結(jié)果中是否有個(gè)良好的排名)。

我們可以從這個(gè)角度上討論這個(gè)問(wèn)題:一個(gè)Web開(kāi)發(fā)者在可信網(wǎng)絡(luò)環(huán)境下做了些成成果,并且他打算將這個(gè)成果部署到當(dāng)前這個(gè)糟糕的互聯(lián)網(wǎng)環(huán)境上。另外,我也尋找一個(gè)更具體的答案而非一個(gè)模糊的”Web標(biāo)準(zhǔn)”,我的意思是已經(jīng)了解了HTTP上的HTML、JavaScript、CSS技術(shù),且認(rèn)為你已經(jīng)是一個(gè)專業(yè)的Web開(kāi)發(fā)人員。那么,除此之外還有那些標(biāo)準(zhǔn),在什么環(huán)境下使用?為什么?請(qǐng)?zhí)峁┮粋€(gè)鏈接到標(biāo)準(zhǔn)的規(guī)范。

答:以下大部分的觀點(diǎn)也許大部分都已知悉,但是其中有少量的觀點(diǎn)你獲取從來(lái)沒(méi)有看過(guò),別擔(dān)心,你不必全部理解他們,或許對(duì)你來(lái)說(shuō)你永遠(yuǎn)也不需要了解到他們。

一、接口設(shè)計(jì)及用戶體驗(yàn)

  • 你需要知道各種瀏覽器實(shí)現(xiàn)標(biāo)準(zhǔn)不一致,你需要保證你的站點(diǎn)在主流瀏覽器上能夠良好運(yùn)行。至少需要測(cè)試:基于Gecko引擎的瀏覽器(例如:Firefox),基于Webkit引擎的瀏覽器(例如Safari和其他一些手機(jī)瀏覽器),Chrome,IE及Opera。同時(shí)也需要考慮在不同的操作系統(tǒng)上,各種瀏覽器如何渲染你的站點(diǎn)。
  • 考慮你的站點(diǎn)將會(huì)被如何使用:是在手機(jī)端訪問(wèn),PC上的瀏覽器訪問(wèn),亦或是搜索引擎。
  • 在避免影響用戶的情況下如何發(fā)布更新。是否有一個(gè)或者多個(gè)測(cè)試/臨時(shí)以便在不打斷站點(diǎn)訪問(wèn)的情況下進(jìn)行架構(gòu)、代碼及內(nèi)容的更新。是否有自動(dòng)化的方式對(duì)在線站點(diǎn)進(jìn)行發(fā)布。這些可以使用一套版本控制系統(tǒng)及自動(dòng)化構(gòu)建方式來(lái)有效實(shí)施。
  • 不允許向用戶提示不友好的錯(cuò)誤信息。
  • 不要以純文本的方式提供出用戶的email地址,因?yàn)樗麄儠?huì)收到過(guò)多的垃圾郵件而死亡。
  • 在用戶生成的鏈接上增加rel=”nofollow”屬性,以避免垃圾郵件。
  • 對(duì)你的站點(diǎn)建立些限制,當(dāng)然這應(yīng)該是經(jīng)過(guò)深思熟慮的-這也屬于安全性范圍。
  • 學(xué)習(xí)如何逐步提高站點(diǎn)功能。
  •  為避免重復(fù)提交,當(dāng)POST成功執(zhí)行后需要進(jìn)行頁(yè)面跳轉(zhuǎn)。
  •  不要忘記考慮輔助功能。它總是一個(gè)好主意,且在某些情況下這是一個(gè)法律要求。 WAI-ARIA和WCAG2個(gè)在這方面的良好資源。
  • 不要讓我想該如何進(jìn)行操作。

二、安全性

  •  有很多需要闡述,但是OWASP開(kāi)發(fā)指南中依據(jù)對(duì)Web站點(diǎn)安全性從頭到腳進(jìn)行了介紹。
  •  要了解注入特別是SQL注入,并學(xué)會(huì)如何避免他。
  •  永遠(yuǎn)不要相信用戶的輸入,也不是來(lái)自于請(qǐng)求別的(包括cookie和隱藏的表單字段值)。
  •  不要使用單獨(dú)類似MD5或SHA加密策略,在進(jìn)行散列密碼值時(shí),使用作料或多種作料以防止彩虹攻擊。對(duì)于短密碼,采用一個(gè)短散列算法處理,例如:bcrypt或scrypt。
  • 不要使用你想象中的身份認(rèn)證系統(tǒng),很容易得到一個(gè)微妙的錯(cuò)誤和不可測(cè)試的問(wèn)題,甚至你自己都不知道會(huì)怎么回事。
  • 了解處理信用卡規(guī)則。
  • 使用SSL/HTTPS處理任何敏感數(shù)據(jù)。
  • 防止會(huì)話劫持。
  • 避免跨站點(diǎn)腳本攻擊。
  • 避免跨站點(diǎn)請(qǐng)求偽造。
  • 避免點(diǎn)擊劫持。
  • 確保你的系統(tǒng)安裝了最新的補(bǔ)丁。
  • 確保你的數(shù)據(jù)庫(kù)連接信息是安全的。
  • 了解最新的攻擊技術(shù)以免影響到你的平臺(tái)。
  •  閱讀谷歌安全手冊(cè)。
  •  閱讀web應(yīng)用程序黑客手冊(cè)。
  • 考慮最小權(quán)限的負(fù)責(zé)人機(jī)制。

三、性能

  • 如果有必要的話實(shí)現(xiàn)緩存策略。理解Http caching和html5 manifest并在合適的地方使用它們。
  • 優(yōu)化圖像-不要使用20 KB大小的圖像做重復(fù)背景。
  • 了解如何gzip/deflate內(nèi)容。
  • 合并/連接多個(gè)樣式表或多個(gè)腳本文件,以減少瀏覽器連接的數(shù)量,并通過(guò)gzip來(lái)壓縮多個(gè)文件中的重復(fù)內(nèi)容。
  • 閱覽雅虎卓越性能站點(diǎn),其中包含大量很棒的指南,例如端到端的性能提升方法,YSlow工具。Goole page speed是是一個(gè)優(yōu)化參考的好去處。
  • 使用CSS image sprite技術(shù)減少圖片請(qǐng)求。(ps:前段時(shí)間用node-canvas做了個(gè)本地化的css-sprite工具,有需要的可以找我拿源碼^_^)。
  • 訪問(wèn)量大的站點(diǎn)可以將內(nèi)容劃分到多個(gè)域下,但不要超過(guò)4個(gè)域。
  • 靜態(tài)內(nèi)容(例如圖片,css文件,js文件及一些靜態(tài)文本)應(yīng)該存放在一個(gè)單獨(dú)的域下面,并且不能使用cokies,因?yàn)樵诿看握?qǐng)求時(shí),都會(huì)將cookies帶上。CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))是一個(gè)不錯(cuò)的選擇。
  • 減少一個(gè)瀏覽器頁(yè)面上發(fā)起的http請(qǐng)求數(shù)量。
  • 使用JavaScript文件壓縮技術(shù)。
  •  確保在站點(diǎn)的根目錄下有一個(gè)favicon.ico文件,即使該文件未被任何使用,流量器也會(huì)自動(dòng)加載它。如果沒(méi)有這個(gè)文件的話,將會(huì)導(dǎo)致大量的404錯(cuò)誤,從而占用你的服務(wù)器帶寬。

四、SEO(搜索引擎優(yōu)化)

  • 使用搜索引擎友好的的url,例如:使用example.com/pages/45-article-title 而非example.com/index.php?page=45
  • 當(dāng)使用#動(dòng)態(tài)內(nèi)容更改#到#!然后在服務(wù)器$_REQUEST[“_escaped_fragment_”]是什么Googlebot使用,而不是#!換句話說(shuō),#!頁(yè)= 1/變成/?_escaped_fragments_=頁(yè)= 1。此外,對(duì)于可能使用FF.b4或鉻,history.pushState用戶({“foo”的:“酒吧”}“。?/頁(yè)=1”,“關(guān)于”,);是一個(gè)偉大的命令。因此,即使在地址欄改變了頁(yè)面不會(huì)重新加載。這使您可以使用?而不是#!保持動(dòng)態(tài)內(nèi)容,并告訴服務(wù)器當(dāng)您發(fā)送電子郵件,我們是這個(gè)頁(yè)面后的鏈接,以及AJAX并不需要再作額外的要求。(Google翻譯,沒(méi)有完全理解…)
  • 不要使用”click here”這樣的鏈接,這樣會(huì)浪費(fèi)SEO的機(jī)會(huì)并且也會(huì)讓人更加難以理解。
  • 要有一個(gè)XML站點(diǎn)地圖,最好是在默認(rèn)位置/sitemap.xml的。
  • 當(dāng)你有兩個(gè)指向不同的地址,可以使用<link rel="canonical".../>,這個(gè)問(wèn)題也可以從谷歌網(wǎng)站管理員
  • 使用Google Webmaster Tools 和 Bing Webmaster Tools.
  • 使用Google Analytics。
  • 了解機(jī)器人搜尋算法和搜索引擎爬蟲(chóng)的工作方式。
  • 重定向請(qǐng)求(使用301永久移動(dòng))要求www.example.com到example.com(或者反過(guò)來(lái)),以防止分裂谷歌兩個(gè)網(wǎng)站之間的排名。
  • 你還要知道還有很多惡心的爬蟲(chóng)程序運(yùn)作在網(wǎng)絡(luò)上。(以前在做一個(gè)百科詞條整理時(shí),對(duì)某網(wǎng)站的詞條進(jìn)行了深度遍歷,但程序運(yùn)行不久IP就被封殺了。)

五、技術(shù)點(diǎn)

  • 理解HTTP協(xié)議,例如:GET,POST,Session,Cookies以及“無(wú)狀態(tài)”的含義。
  • 根據(jù)W3C規(guī)范寫(xiě)你的XHTML/ HTML和CSS,并確保他們通過(guò)驗(yàn)證。這是為了避免瀏覽器的使用非標(biāo)準(zhǔn)的瀏覽器,如屏幕讀取器和移動(dòng)設(shè)備的正常工作。
  • 了解JavaScript在瀏覽器中的運(yùn)行機(jī)制。
  • 理解JavaScript、css及其他資源在頁(yè)面上是如何被加載的,并考慮他們對(duì)性能的影響。現(xiàn)在普遍接受將腳本放在應(yīng)用程序或html5底部執(zhí)行。
  • 了解JavaScript沙箱的工作原理,特別是如果你打算使用iframe。
  • 你要注意到JavaScript是可以被禁止的,并且AJAX是一個(gè)拓展而非基線。很多普通用戶已經(jīng)離開(kāi)了它,NoScript越來(lái)越受歡迎,移動(dòng)設(shè)備或許不會(huì)像你想象的那樣運(yùn)行,谷歌將無(wú)法運(yùn)行大部分的的JavaScript。(不解,noscript標(biāo)簽是定義在未能執(zhí)行js時(shí)的輸出,當(dāng)是當(dāng)前js橫行的時(shí)代,真的還有很多用戶禁用js嗎???)
  • 理解重定向301和302的區(qū)別。(這也是SEO中的一項(xiàng))
  • 盡可能深入了解你的開(kāi)發(fā)環(huán)境。
  • 考慮使用Reset CSS或Normalize.css。
  • 考慮JavaScript框架(如jQuery,MooTools,Prototype,Dojo或YUI3),這將使用JavaScript進(jìn)行DOM操作時(shí),隱藏了很多的瀏覽器差異。
  • 考慮到JS框架及性能,可以使用一個(gè)服務(wù),如谷歌庫(kù)API來(lái)加載框架,使瀏覽器可以使用它已經(jīng)緩存,而不是從你的網(wǎng)站下載一個(gè)副本的框架副本。(CDN)
  • 不要重復(fù)造輪子。做任何事情之前先搜索關(guān)于如何做到這一點(diǎn)的組件或例子。有99%的可能性有人已經(jīng)做到了和發(fā)布了一個(gè)開(kāi)源版本的代碼。
  • 在明確你的需求之前,不要使用20個(gè)庫(kù)去堆砌功能。特別是在客戶端訪問(wèn),其最重要的就是讓事情輕便、快速和靈活。

六、Bug修復(fù)

  • 你要知道你將要花費(fèi)80%的時(shí)間去維護(hù)你20%時(shí)間寫(xiě)的代碼,所以編碼時(shí)請(qǐng)仔細(xì)。
  • 建立一個(gè)良好的錯(cuò)誤報(bào)告解決方案。
  • 有一個(gè)能讓大家提供建議或提出批評(píng)的系統(tǒng)。
  • 將未來(lái)支持的功能及維護(hù)人員記錄在文檔中。
  • 頻繁的備份! (并且確保這些備份是功能性)埃德?盧卡斯的回答有一些忠告。有一個(gè)恢復(fù)策略,而不只是一個(gè)備份策略。
  • 有一個(gè)版本控制系統(tǒng)來(lái)存放文件,例如Subversion,Mercurial或Git。
  • 不要忘記做些驗(yàn)收測(cè)試,類似Selenium框架可以提供方便。
  • 請(qǐng)確保您有足夠的日志記錄在案,例如使用框架log4j,log4net或log4r。如果你的網(wǎng)站發(fā)生了錯(cuò)誤,你要知道發(fā)生了什么事情。
  • 當(dāng)?shù)卿洉r(shí)請(qǐng)務(wù)必同時(shí)捕獲處理異常和未處理的異常。報(bào)告/分析日志的輸出,因?yàn)樗鼤?huì)告訴你網(wǎng)站中的關(guān)鍵問(wèn)題。
很多知識(shí)都省略了,并不是因?yàn)樗麄儾皇怯杏玫拇鸢福撬鼈円催^(guò)于詳細(xì),要么超出了范圍,亦或?qū)δ承┤藖?lái)說(shuō)過(guò)于深入。大家應(yīng)該知道這知識(shí)概述,請(qǐng)隨意暢談,因?yàn)槲铱赡苠e(cuò)過(guò)了一些東西或者也犯了一些錯(cuò)誤。

推薦閱讀:

  • HttpOnly Cookie:一種緩解XSS跨站點(diǎn)腳本攻擊的技術(shù);http://desert3.iteye.com/blog/869080;http://blog.codinghorror.com/protecting-your-cookies-httponly/
  • Sitemap: 通常以xml文件方式,方便網(wǎng)站管理員通知搜索引擎他們網(wǎng)站上有哪些可供抓取的網(wǎng)頁(yè),以便搜索引擎可以更加智能地抓取網(wǎng)站。http://blog.codinghorror.com/the-importance-of-sitemaps/
  • Cross-Site Request Forgeries:跨站請(qǐng)求偽造 http://blog.codinghorror.com/cross-site-request-forgeries-and-you/
  • OWASP:開(kāi)放式Web應(yīng)用程序安全項(xiàng)目(OWASP,Open Web Application Security Project)是一個(gè)組織,它提供有關(guān)計(jì)算機(jī)和互聯(lián)網(wǎng)應(yīng)用程序的公正、實(shí)際、有成本效益的信息。其目的是協(xié)助個(gè)人、企業(yè)和機(jī)構(gòu)來(lái)發(fā)現(xiàn)和使用可信賴軟件。https://www.owasp.org/index.php/Category:OWASP_Guide_Project
  • HTML5 Manifest:離線緩存http://www.html5rocks.com/zh/tutorials/appcache/beginner/
  • deflate:DEFLATE是同時(shí)使用了LZ77算法與哈夫曼編碼(Huffman Coding)的一個(gè)無(wú)損數(shù)據(jù)壓縮算法。http://zh.wikipedia.org/wiki/DEFLATE
  • CDN:Content Delivery Network(內(nèi)容分發(fā)網(wǎng)絡(luò))
  • 內(nèi)容分發(fā)網(wǎng)絡(luò)是一種新型網(wǎng)絡(luò)內(nèi)容服務(wù)體系,其基于IP網(wǎng)絡(luò)而構(gòu)建,基于內(nèi)容訪問(wèn)與應(yīng)用的效率要求、質(zhì)量要求和內(nèi)容秩序而提供內(nèi)容的分發(fā)和服務(wù)。http://baike.baidu.com/view/8689800.htm?fromtitle=CDN&fromid=420951&type=search
  • 雅虎站點(diǎn)性能優(yōu)化:https://developer.yahoo.com/performance/rules.html
  • Google page speedhttps://developers.google.com/speed/docs/best-practices/rules_intro
  • Http 301,302http://blog.csdn.net/ghj1976/article/details/1794684
  • Normalize.css 與 Reset CSS區(qū)別;Normalize.css與Reset CSS主要為定義瀏覽器統(tǒng)一的默認(rèn)樣式。http://stackoverflow.com/questions/6887336/what-is-the-difference-between-normalize-css-and-reset-css
  • HTML rel canonical 屬性值;rel canonical 屬性值 -- rel="canonical"屬性讓搜索引擎知道當(dāng)前網(wǎng)站中的重復(fù)或相似網(wǎng)頁(yè)中,哪一個(gè)頁(yè)面才是站長(zhǎng)想讓其抓取與收錄的。http://en.wikipedia.org/wiki/Canonical_link_element、http://tools.ietf.org/html/rfc6596
  • Google Analytics:企業(yè)級(jí)的網(wǎng)站分析服務(wù)http://www.google.com/analytics/
  • Robots.txt(Robots exclusion standard) http://en.wikipedia.org/wiki/Robots_exclusion_standard

譯文出自:Cnblog

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 欧美日一区二区三区 | 天天成人综合网 | 久久国产精品亚洲77777 | 国产伊人影院 | 欧美高清在线视频在线99精品 | 欧美大陆日韩一区二区三区 | 国产在线高清视频 | 欧美成人影院 在线播放 | 亚洲成年网站 | 国产精品永久免费自在线观看 | 日本免费在线一区 | 亚洲国产国产综合一区首页 | 欧美韩国| www操操操| 亚洲第一视频区 | 欧美性xxxx巨大黑人猛 | 久久久久日韩精品免费观看网 | 国产大象视频一区二区 | 国产欧美国产精品第二区 | 香蕉乱码成人久久天堂爱免费 | 久久精品国产400部免费看 | 最近最新中文字幕免费高清1 | 欧美一区二区三区国产精品 | 欧美高清video | 偷拍区小说区图片区另类呻吟 | 人善交zzzxxx另类 | 亚洲欧美经典 | 国产精品亚洲综合五月天 | 欧美人与动人物姣配xxxx | 天天天做天天天天爱天天想 | 91精品国产一区二区三区左线 | 国产精品嫩草研究院成人 | 成人午夜免费在线观看 | xxxx性视频 | 国产日韩亚洲欧洲一区二区三区 | 久久天堂 | 国产日韩欧美一区二区三区综合 | 国产五月| 大美香蕉伊在看欧美 | 欧美性色欧美a在线观看 | 亚洲欧美日韩不卡 |