互聯網項目總結

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

? ? ? ? 從去年年底開始專門被分配到互聯網小組做項目,一直想做個總結,但是苦于太貪玩。好吧,借著小組技術交流來一發。這里只對自己新學習的技術或者一些小技巧做簡要概述,不做深究。

? ? ? ? 1.互聯網項目和普通內網項目有什么區別?

? ? ? ? 1.1更加注重體驗

? ? ? ? 1.2更加注重性能

? ? ? ? 1.3安全性(不能相信用戶)

? ? ? ? ?2.有關互聯網的小知識

? ? ? ? 2.1具體案例: 在我們微信版上線前,我們得到了一個結論,那就是我們的微信頁面訪問速度很慢,那么針對這個問題該如何進行優化呢?

? ? ? ? ?132425_zPDF_2474041.png

? ? ? ? 服務器的配置:帶寬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標簽

? ? ? ??131205_ZZfP_2474041.png

? ? ? ? dto對象,添加自定義注解@XssValid(主要功能就檢查是否有腳本注入)

? ? ? ??131431_MxZ4_2474041.png

? ? ? ?校驗結果會反饋給BindingResult對象,?配置aop獲取校驗結果

? ? ??131627_i4AM_2474041.png

? ? ? 校驗出錯則拋出異常

? ? ? 131857_JkYd_2474041.png

?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

轉載于:https://my.oschina.net/u/2474041/blog/693165

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284388.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284388.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284388.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【ArcGIS微課1000例】0036:分式標注案例教程

【拓展閱讀】:【ArcGIS Pro微課1000例】0015:ArcGIS Pro中屬性字段分式標注案例教程 文章目錄 1. 符號化2. 分式標注1. 符號化 右鍵數據圖層→符號系統,打開符號系統對話框,住符號系統選擇【唯一值】,字段1選擇NAME。 唯一值標注效果: 2. 分式標注 雙擊打開圖層屬性,切…

【轉】 ConstraintLayout 完全解析 快來優化你的布局吧

轉自&#xff1a; http://blog.csdn.net/lmj623565791/article/details/78011599 本文出自張鴻洋的博客 一、概述 ConstraintLayout出現有一段時間了&#xff0c;不過一直沒有特別去關注&#xff0c;也多多少少看了一些文字介紹&#xff0c;多數都是對使用可視化布局拖拽&#…

IoTDB 的C# 客戶端發布 0.13.0.7

IoTDB C# Client 0.13.0.7 已經發布&#xff0c; 此版本更新的內容為筆者為Apache-IoTDB-Client-CSharp實現了Ado.Net的兼容層&#xff0c;降低了對IoTDB的使用門檻。于此同時&#xff0c; IoTSharp也開始支持了IoTDB的數據入庫&#xff0c;隨著晚些時候IoTSharp 2.7 版本的發布…

[轉]Docker超詳細基礎教程,快速入門docker

一、docker概述 1.什么是docker Docker 是一個開源的應用容器引擎&#xff0c;基于 Go 語言 并遵從 Apache2.0 協議開源。 Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中&#xff0c;然后發布到任何流行的 Linux 機器上&#xff0c;也可以實現虛擬…

【Zookeeper】源碼分析之服務器(一)

一、前言 前面已經介紹了Zookeeper中Leader選舉的具體流程&#xff0c;接著來學習Zookeeper中的各種服務器。 二、總體框架圖 對于服務器&#xff0c;其框架圖如下圖所示 說明&#xff1a; ZooKeeperServer&#xff0c;為所有服務器的父類&#xff0c;其請求處理鏈為PrepReques…

linux下配置samba服務器(以CentOS6.7為例)

一、簡介&#xff08;百度百科&#xff09;Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件&#xff0c;由服務器及客戶端程序構成。SMB&#xff08;Server Messages Block&#xff0c;信息服務塊&#xff09;是一種在局域網上共享文件和打印機的一種通信協議&#xff0c…

【ArcGIS微課1000例】0037:上下標標注記案例教程

在利用ArcGIS進行制圖時&#xff0c;進行標注(Label) 或注記(Annolation) 是必不可少的。但是除了常規的標注和注記以外&#xff0c;還時常需要一些特殊的標注或注記&#xff0c;比如上標、下標等。 文章目錄一、上標標注方法二、下標標注方法一、上標標注方法 上下標代碼模板…

Redis——緩存擊穿、穿透、雪崩

1、緩存穿透&#xff1a; &#xff08;1&#xff09;問題描述&#xff1a;key對應的數據并不存在&#xff0c;每次請求訪問key時&#xff0c;緩存中查找不到&#xff0c;請求都會直接訪問到數據庫中去&#xff0c;請求量超出數據庫時&#xff0c;便會導致數據庫崩潰。如一個用…

數據庫性能系列之子查詢

前言說起數據庫&#xff0c;想必一些朋友會認為&#xff0c;數據庫不就是天天CRUD嗎&#xff1f;只要我掌握了這幾招&#xff0c;根本不在話下。是的&#xff0c;其實我也很贊同這個觀點&#xff0c;對于大多數應用程序來說&#xff0c;只掌握這些內容&#xff0c;是可以勝任日…

shell printf命令:格式化輸出語句

shell printf命令&#xff1a;格式化輸出語句注意&#xff1a;使用printf的腳本比使用echo移植性好。如同echo命令&#xff0c;printf命令可以輸出簡單的字符串&#xff1a;[rootmaster ~]#printf "Hello, Shell\n"Hello, Shellprintf不像echo那樣會自動提供一個換行…

UVa 10905 孩子們的游戲

https://vjudge.net/problem/UVA-10905 題意&#xff1a; 給定n個正整數&#xff0c;把它們連接成一個最大的整數。 思路&#xff1a; 實在是沒想到直接用string來排序了。 1 #include<iostream> 2 #include<algorithm>3 #include<string>4 using namespace …

laravel 內部驗證碼

為什么80%的碼農都做不了架構師&#xff1f;>>> 1.找到此文件composer.json 如下圖添加 "gregwar/captcha": "1.*" 行代碼 2.在命令行中執行 composer update 安裝完成后 3.找到控制器添加如下代碼 public function captcha($tmp) {//生成驗證…

k8s docker集群搭建

一、Kubernetes系列之介紹篇 1.背景介紹 云計算飛速發展 - IaaS - PaaS - SaaS Docker技術突飛猛進 - 一次構建&#xff0c;到處運行 - 容器的快速輕量 - 完整的生態環境 2.什么是kubernetes 首先&#xff0c;他是一個全新的基于容器技術的分布式架構領先方案。Kubernetes(k8…

leetcode 66 Plus One

給定一個數組&#xff0c;表示整數的各個位數&#xff0c;現要將其加上1&#xff0c;考慮進位。 vector<int> plusOne(vector<int>& digits) {int size digits.size();bool carry true;for (int i size - 1; i > 0; --i) {if (digits[i] 9 && c…

如何讓最小 API 綁定查詢字符串中的數組

前言在上次的文章中&#xff0c;我們實現了《讓 ASP.NET Core 支持綁定查詢字符串中的數組》&#xff1a;[HttpGet] public string Get([FromQuery][ModelBinder(BinderType typeof(IntArrayModelBinder))] int[] values) {return string.Join(" ", values.Select(p…

Kubernetes api-server源碼閱讀2(Debug Kubernetes篇)

云原生學習路線導航頁&#xff08;持續更新中&#xff09; 本文是 Kubernetes api-server源碼閱讀 系列第二篇&#xff0c;主要講述如何實現 kubernetes api-server 的 debug 參考b站視頻地址&#xff1a;Kubernetes源碼開發之旅二 1.本篇章任務 Go-Delve&#xff1a;go語言的…

webrtc 視頻 demo

webrtc 視頻 demo webrtc網上封裝的很多&#xff0c;demo很多都是一個頁面里實現的&#xff0c;今天實現了個完整的 &#xff0c; A 發視頻給 BA webrtc.html作為offer <!DOCTYPE html> <html id"home" lang"en"><head><meta http-e…

條件注釋判斷瀏覽器版本!--[if lt IE 9](轉載)

<!--[if !IE]><!--> 除IE外都可識別 <!--<![endif]--> <!--[if IE]> 所有的IE可識別 <![endif]--> <!--[if IE 6]> 僅IE6可識別 <![endif]--> <!--[if lt IE 6]> IE6以及IE6以下版本可識別 <![endif]--> <!--[if …

[轉]阿里開源低代碼引擎LowCodeEngine

一、什么是低代碼引擎 低代碼引擎是具備強大擴展能力的低代碼研發框架&#xff0c;使用者只需要基于低代碼引擎便可以快速定制符合自己業務需求的低代碼平臺。同時&#xff0c;低代碼引擎還在標準低代碼設計器的基礎上提供了簡單易用的定制擴展能力&#xff0c;能夠滿足業務獨特…

Beyond Istio OSS——Istio服務網格的現狀與未來

作者&#xff1a;宋凈超&#xff08;Jimmy Song&#xff09;&#xff0c;原文地址&#xff1a;https://jimmysong.io/blog/beyond-istio-oss/本文根據筆者在 GIAC 深圳 2022 年大會上的的演講《Beyond Istio OSS —— Istio 的現狀及未來》[1] 整理而成&#xff0c;演講幻燈片見…