用户信息填写web代码_Web前端常见问题汇总
1.get 和post的區別
1.1數據傳輸大小:get 傳輸數據大小限制在1KB,post傳輸數據大小沒有嚴格限制
1.2緩存和安全:get請求某個url,數據追加到url中發送(http的header傳送),即瀏覽器將各個表單字段元素及其數據按照URL參數的格式附加在請求行中的資源路徑后面,查看瀏覽器歷史記錄就可以看到用戶數據,自然就不夠安全,一些文件在訪問的時候同時也被緩存了。
post請求時瀏覽器把各表單字段元素及其數據作為HTTP消息的實體內容發送給Web服務器,而不是作為URL地址的參數進行傳遞,這樣就無法輕易獲取,相對安全,文件一般不會被緩存。
2.XSS(cross site script)跨站腳本攻擊
XSS是指惡意攻擊者利用網站沒有對用戶提交數據進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁面中去。使別的用戶訪問都會執行相應的嵌入代碼。
2.1.反射型XSS攻擊
原請求:http://www.test.com/message.php?send=Hello world!
攻擊請求:http://www.test.com/message.php?send=<script>alert('foolish')</script>!
2.2.存貯型XSS攻擊
留言板表單中的表單域:<input type=“text” name=“content” value=“這里是用戶填寫的數據”>
用戶是提交相應留言信息;將數據存儲到數據庫;其他用戶訪問留言板,應用去獲取數據并顯示。
攻擊者在value填寫<script>alert(‘foolish!’)</script>,將數據存儲到數據庫中,其他用戶取出數據顯示的時候,將會執行攻擊性代碼。
2.3DOMBasedXSS
通過修改頁面的DOM節點形成的XSS
受攻擊的網站有一個HTML頁面采用不安全的方式從document.location 或document.URL 或 document.referrer獲取數據
3.Web前端頁面性能優化
內容大多來自http://blog.csdn.net/mahoking/article/details/51472697
http://www.cnblogs.com/sprying/p/4251682.html
3.1瀏覽器工作原理
3.1.1 ETag工作原理
If-None-Match: 頭信息中包含 ETag hash,如果數據沒有改變,服務器將返回 304 狀態代碼。
是 Entity Tag 的縮寫,是實體標簽的意思。在HTTP1.1協議中其實就是請求HEAD中的一個屬性,用來幫助服務器控制Web端的緩存驗證。它的原理是這樣的,當瀏覽器請求服務器的某項資源(A)時, 服務器根據A算出一個哈希值(3f80f-1b6-3e1cb03b)并通過 ETag 返回給瀏覽器,瀏覽器把"3f80f-1b6-3e1cb03b" 和 A 同時緩存在本地,當下次再次向服務器請求A時,會通過類似If-None-Match: "3f80f-1b6-3e1cb03b" 的請求頭把ETag發送給服務器,服務器再次計算A的哈希值并和瀏覽器返回的值做比較,如果發現A發生了變化就把A返回給瀏覽器(200),如果發現A沒有變化就給瀏覽器返回一個304未修改。這樣通過控制瀏覽器端的緩存,可以節省服務器的帶寬,因為服務器不需要每次都把全量數據返回給客戶端。
通常情況下,ETag更類似于資源指紋(fingerprints),如果資源發生變化了就會生成一個新的指紋,這樣可以快速的比較資源的變化。在服務器端實現中,很多情況下并不會用哈希來計算ETag,這會嚴重浪費服務器端資源,很多網站默認是禁用ETag的。有些情況下,可以把ETag退化,比如通過資源的版本或者修改時間來生成ETag。
3.1.2 Last-Modified
請求中發送一個 If-Modified-Since 頭信息,它包含了上一次從服務器連同數據所獲得的日期。如果數據從那時起沒有改變,服務器將返回一個特殊的 HTTP 狀態代碼 304,這意味著從上一次請求后這個數據沒有改變。
3.2優化方法
3.2.1 減少http請求,合理設置 HTTP緩存
每次http請求都需要建立通信鏈路、進行數據傳輸,而在服務器端,每個http都需要啟動獨立的線程去處理。這些通信和服務的開銷都很昂貴,減少http請求的數目可有效提高訪問性能。
減少http的主要手段是合并CSS、合并javascript、合并圖片。將瀏覽器一次訪問需要的javascript和CSS合并成一個文件,這樣瀏覽器就只需要一次請求。圖片也可以合并,多張圖片合并成一張,如果每張圖片都有不同的超鏈接,可通過CSS偏移響應鼠標點擊操作,構造不同的URL。
對一個網站而言,CSS、javascript、logo、圖標這些靜態資源文件更新的頻率都比較低,而這些文件又幾乎是每次http請求都需要的,如果將這些文件緩存在瀏覽器中,可以極好的改善性能。通過設置http頭中的cache-control和expires的屬性,可設定瀏覽器緩存,緩存時間可以是數天,甚至是幾個月。
3.2.2 啟用壓縮
在服務器端對文件進行壓縮,在瀏覽器端對文件解壓縮,可有效減少通信傳輸的數據量。如果可以的話,盡可能的將外部的腳本、樣式進行合并,多個合為一個。文本文件的壓縮效率可達到80%以上,因此HTML、CSS、javascript文件啟用GZip壓縮可達到較好的效果。但是壓縮對服務器和瀏覽器產生一定的壓力,在通信帶寬良好,而服務器資源不足的情況下要權衡考慮。
3.2.3 圖片懶加載(Lazyload)
這條策略實際上并不一定能減少 HTTP請求數,但是卻能在某些條件下或者頁面剛加載時減少 HTTP請求數。對于圖片而言,在頁面剛加載的時候可以只加載第一屏,當用戶繼續往后滾屏的時候才加載后續的圖片。這樣一來,假如用戶只對第一屏的內容感興趣時,那剩余的圖片請求就都節省了。
對于網站優化加速的個人理解:
1.合并:css, js, 圖片(CSS sprites)
2.緩存 客戶端存儲不常更新的資源
3.壓縮
4.圖片懶加載(Lazyload images)
所有這些都有減少http請求次數,或者一次性請求次數
原作者姓名:如霧如電原出處:CSDN
原文鏈接:Web前端常見問題匯總_如霧如電的博客-CSDN博客
總結
以上是生活随笔為你收集整理的用户信息填写web代码_Web前端常见问题汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux删除文件_Linux删除文件夹
- 下一篇: ab plc编程软件_AB编程软件及所有