CDN
什麼是CDN
初學Web開發的時候,多多少少都會聽過這個名詞->CDN。
CDN在我沒接觸之前,它給我的印象是用來優化網絡請求的,我第一次用到CDN的時候是在找JS檔案時。當時找不到相對應的JS檔案下載下傳位址(之前一般我都是把JS下載下傳下來,然後在項目中引用的。PS:當然了,我覺得大部分初學者都一樣)
找着找着發現了這個網站:
http://www.bootcdn.cn/,發現它這個搜尋引擎收錄了很多的JS檔案,直接在項目中引入它的位址就行了!
後來,在購買伺服器的時候也發現了廣告:CDN加速之類的...
當時覺得還沒用到,就不管它了。
今天,在整理筆記的時候又看到了CDN這個名詞了,于是決定去好好學習一番。
那麼我講了一大堆,CDN到底是什麼?
CDN的全稱是Content Delivery Network,即内容分發網絡。
為什麼要使用CDN?
從我上面的經曆而言,CDN肯定是能夠加快我們的通路網站的速度的(因為有CDN伺服器賣),那JS引入絕對的路徑和我們自己下載下傳下來,使用相對路徑引入有什麼差別呢???
在我們的應用中,我們一般采用:應用伺服器和資源伺服器進行分離的方式
- 應用伺服器主要是我們的代碼(JS、CSS不放在應用伺服器上)
- 資源伺服器主要是一些靜态的資源,而CDN就是作為我們的資源伺服器了。
CDN主要用于存儲JS、CSS檔案,能夠加快我們擷取JS、CSS的内容
參考資料:
SEO
什麼是SEO
SEO(search engine optimization 搜尋引擎優化)
SEM(search engine marketing 搜尋引擎營銷)
SEM包括搜尋引擎優化(SEO)、付費排名、精準廣告以及付費收錄,SEM包括SEO和競價,SEO也是SEM的一種方式。
SEM要錢的(簡單了解:百度的廣告就是SEM)、SEO不用錢的(自己配置提高搜尋引擎的權重)
SEO是一種技術,主要是用于提高網站浏覽量而做的優化手段
為什麼需要SEO?
我們搜一下Java微信公衆号:

發現排名是有先後的,部落格園、CSDN都是靠前的。可是平台那麼多,還有開源中國啊、簡書啊等等平台為啥就排不到前面呢?就是SEO沒有部落格園、CSDN做得好
想要提高在搜尋引擎的權重(自己的網站排得更前)就需要學習SEO。
提高權重的方法
那麼提高在搜尋引擎的權重有什麼辦法的呢??可以看下面的圖:
當然了,跟我們編寫的代碼品質也是有很大的關系的:
A、title标題:強調重點
B、meta keywords關鍵詞:列舉幾個關鍵詞
C、meta description網頁描述:高度概括網頁的内容
以上資訊不要堆積、重複
語義話代碼(HTML 标簽有自己的意義,在适當的位置用适當的标簽):
- 1、h1~h6 多用于标題
- 2、ul 多用于無序清單
- 3、ol 多用于有序清單
- 4、dl 用于定義資料清單
- 5、em、strong 表示強調
- div、span 是 html 标簽中最沒有語義的
有利搜尋引擎:
- 1、a:通路外部連結時要加上 rel="nofollow",告訴搜尋引擎外部連結無需追蹤,加上 title 說明
- 2、h1:搜尋引擎外認為 h1 最重要,使用 css 調整,網頁正文标題用 h1,副标題用 h2,其他不要亂用 h 标簽
- 3、br 用于文本間的換行,用在 p 内,也可以用
表示空行<p><br/></p>
- 4、caption:表格标題
- 5、img:使用 title、alt 說明
- 6、
>表示強調,<strong><em
的權重僅次于<em>
,如果隻想表示加粗斜體,建議使用<strong>
,表示強調則使用<b><i>
<strong><i>
- 7、重要内容 HTML 代碼放在最前面(使用 css 改變布局)
- 8、重要内容不要用 JS 輸出(搜尋引擎看不懂 JS)
- 9、盡量少使用 iframe 架構(搜尋引擎不喜歡)
- 10、謹慎使用 display:none(搜尋引擎會過濾掉其内容,設定 z-index 代替)
- 11、精簡代碼
頁面結構:
- 結構布局優化:用扁平化結構(層次結構超過三層小蜘蛛就不願意爬了)
- 控制首頁連結數量(中小網站100以内,頁面導航、底部導航、錨文字連結等)
- 扁平化的目錄層次(小蜘蛛跳轉3次可以到達網站内任何一個内頁,網站的設計首頁、欄目、内容頁,不要用縱線性的結構)
- 導航seo優化(頭部、底部、内容部分,主導航、副導航、分類導航,盡量用文字,面包屑導航,在每個網站上留下面包屑,使使用者可以了解網站組織形式,放于正文的左上方)
- 内容頁面的布局細節
- 左面正文,右面熱門文章、相關文章,下面是版權資訊及連結,欄目排布: 首頁123456789下拉選擇最贊)
- 網站的加載速度會影響小蜘蛛的爬行,頁面最好不要超過100k
XSS
什麼是XSS?
跨站腳本(cross site script)為了避免與樣式css混淆,是以簡稱為XSS。
XSS是一種經常出現在web應用中的計算機安全漏洞,也是web中最主流的攻擊方式。那麼什麼是XSS呢?
- XSS是指惡意攻擊者利用網站沒有對使用者送出資料進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁面中去。使别的使用者通路都會執行相應的嵌入代碼。
XSS跟SQL注入是類似的,它攻擊有兩種方式:
- 反射型
- 存儲型
XSS攻擊的危害是很大的,注入
script
可以執行任何的JS代碼(意味着可以擷取cookie等資訊了),注入
style
可以把頁面全部弄崩
防範XSS攻擊
最重要的是:不要相信用戶端發送過來的任何資料!
- 評論功能就最容易發生XSS攻擊了
防範XSS攻擊可簡單分成三個步驟:
- 編碼(對特殊的字元進行編碼,
,<
'
等特殊字元>
- 過濾(過濾掉一切可能被調用的屬性,标簽。比如:onclick,onerror,iframe等等)
- encode.js:可以使用https://github.com/mathiasbynens/he 中的he.js
- domParse:可以用 https://github.com/blowsie/Pure-JavaScript-HTML5-Parser
CSRF
什麼是CSRF
CSRF的全名為Cross-site request forgery,它的中文名為 跨站請求僞造(僞造跨站請求【這樣讀順口一點】)
CSRF是一種夾持使用者在已經登陸的web應用程式上執行非本意的操作的攻擊方式。相比于XSS,CSRF是利用了系統對頁面浏覽器的信任,XSS則利用了系統對使用者的信任。
CSRF攻擊是源于Web的隐式身份驗證機制!Web的身份驗證機制雖然可以保證一個請求是來自于某個使用者的浏覽器,但卻無法保證該請求是使用者準許發送的
來源:
http://www.cnblogs.com/phpstudy2015-6/p/6771239.html防禦CSRF攻擊
抵禦CSRF攻擊的關鍵在于:在請求中放入攻擊者所不能僞造的資訊,并且該資訊不存在于Cookie之中。
那麼我們在送出表單時添加一個token并驗證就行了,很簡單
如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章,想要擷取更多的Java資源的同學,可以關注微信公衆号:Java3y
更多的文章可往:
文章的目錄導航