2019獨角獸企業重金招聘Python工程師標準>>>
? ? ? ? 從去年年底開始專門被分配到互聯網小組做項目,一直想做個總結,但是苦于太貪玩。好吧,借著小組技術交流來一發。這里只對自己新學習的技術或者一些小技巧做簡要概述,不做深究。
? ? ? ? 1.互聯網項目和普通內網項目有什么區別?
? ? ? ? 1.1更加注重體驗
? ? ? ? 1.2更加注重性能
? ? ? ? 1.3安全性(不能相信用戶)
? ? ? ? ?2.有關互聯網的小知識
? ? ? ? 2.1具體案例: 在我們微信版上線前,我們得到了一個結論,那就是我們的微信頁面訪問速度很慢,那么針對這個問題該如何進行優化呢?
? ? ? ? ?
? ? ? ? 服務器的配置:帶寬1m,cpu1ghz,內存1g
? ? ???2.1.1直接了當增加帶寬(增到4M)
? ? ? ?2.1.2壓縮js、css盡量合并成一個減少瀏覽器連接數(節省帶寬)
? ? ? ?2.1.3對一些工具類采用外部的cdn加速(相當于向別的地方加載數據,使用別人的帶寬)
? ? ? ?2.1.4頁面加載慢最大原因是在圖片,所以我們可以把圖片也做cdn加速(我們這里采用的是七牛)
? ? ? ?2.1.5使用nginx將頁面靜態化
? ? ? ?2.2防止xss跨站腳本攻擊
? ? ? ?2.2.1什么是xss攻擊?
? ? ? ? 小例子:http://www.cnblogs.com/dolphinX/p/3391351.html
? ? ? ?2.2.2錄入時使用dto進行校驗
? ? ? ? ?controller先接收ProjectBase對象,添加@Valid標簽
? ? ? ??
? ? ? ? dto對象,添加自定義注解@XssValid(主要功能就檢查是否有腳本注入)
? ? ? ??
? ? ? ?校驗結果會反饋給BindingResult對象,?配置aop獲取校驗結果
? ? ??
? ? ? 校驗出錯則拋出異常
? ? ?
?2.2.3輸出時使用${fn:escapeXml(userInput)} ?,將特殊字符轉化為字符串
2.3簡單的seo優化
? ? ? ? 代碼精簡、網頁靜態化(不能全都ajax)、網站內容鏈接、網站結構(div+css)、網站頭部標簽優化(標題,關鍵字)
2.4標簽加上?
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">使用最高版本的ie內核2.5獲取數據用get(效率高),提交數據用post(傳輸量大,更安全)
? ? ? ?2.5.1多數瀏覽器對于POST采用兩階段發送數據的,先發送請求頭,再發送請求體,即使參數再少再短,也會被分成兩個步驟
? ? ? ?來發送(相對于GET),也就是第一步發送header數據,第二步再發送body部分。HTTP是應用層的協議,而在傳輸層有些
? ? ? ?情況TCP會出現兩次連結的過程,HTTP協議本身不保存狀態信息,一次請求一次響應。對于TCP而言,通信次數越多反而
? ? ? ?靠性越低,能在一次連結中傳輸完需要的消息是最可靠的,盡量使用GET請求來減少網絡耗時。如果通信時間增加,這段時
? ? ? 間客戶端與服務器端一直保持連接狀態,在服務器側負載可能會增加,可靠性會下降。
? ? ? 2.5.2?GET請求能夠被cache,GET請求能夠被保存在瀏覽器的瀏覽歷史里面(密碼等重要數據GET提交,別人查看歷史記錄,
? ? ?就可以直接看到這些私密數據)POST不進行緩存。
? ? ?2.5.3?GET參數是帶在URL后面,傳統IE中URL的最大可用長度為2048字符,其他瀏覽器對URL長度限制實現上有所不同。
? ? ?POST請求無長度限制(目前理論上是這樣的)。
? ? 2.5.4?GET提交的數據大小,不同瀏覽器的限制不同,一般在2k-8K之間,POST提交數據比較大,大小靠服務器的設定值限制。
? ? 2.5.5?全部用POST不是十分合理,最好先把請求按功能和場景分下類,對數據請求頻繁,數據不敏感且數據量在普通瀏覽器最
? ? ?小限定的2k范圍內,這樣的情況使用GET。其他地方使用POST。
3.redis的嘗試
? ? ? ? ? 3.1 redis是什么呢?
簡介: Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的 日志型、Key-Value數據庫,并提供多種語言的API。SET操作每秒鐘 110000 次,GET操作每秒鐘 81000 次。
? ? ? ? ? 3.2 怎么用?
? ? ? ? ? 強大的spring已經對redis進行了整合。
? ? ? ? ? ? 1.做緩存。
? ? ? ? ? ? 2.管理session。
? ? ? ? ? 具體可以看看http://www.tuicool.com/articles/7Bni6f
? ? ? ? ? 常用命令可參考:http://hello-nick-xu.iteye.com/blog/2076031