一区二区日本_久久久久久久国产精品_无码国模国产在线观看_久久99深爱久久99精品_亚洲一区二区三区四区五区午夜_日本在线观看一区二区

[雜談]了解一些額外知識,讓前端開發錦上添花,雜談錦上添花

勸了別人無數次,讓別人喝了雞湯,幫別人填坑,自己卻掉了坑

在前端學習里面,很多人都是注重學習代碼(html,css,js)。愛掏網 - it200.com或者是一些框架,庫(jquery,vue,react),或者是各種工具(webpack,gulp)。愛掏網 - it200.com在以往的文章里面,或者自己和別人交談,都有建議過別人多練,不要悶頭就寫代碼,多深入了解當中的原理,學習其中的思想。愛掏網 - it200.com但是除了代碼方面的知識之外,還有哪一些是作為一個前端,應該擴展學習的呢?下面簡單羅列和整理了一下最近學習的資源。愛掏網 - it200.com如果大家還有其它的推薦,歡迎在評論區留言。愛掏網 - it200.com

下面的知識,可能不需要太過于深入,詳細的掌握,但是必須要有所了解,這樣在開發上遇到問題,解決問題的時候即使不是如虎添翼,也是錦上添花。愛掏網 - it200.com

前端而言,不可避免的要和接口打交道。愛掏網 - it200.com除了和后臺對接口,請求數據,渲染頁面,之外。愛掏網 - it200.com對http的請求,也是要有一個了解,比如http協議,請求方式,請求過程,結果狀態碼等。愛掏網 - it200.com了解這些,對開發的時候可能遇到的問題,就可以大概知道問題是怎么產生的,更快的知道怎么解決,避免。愛掏網 - it200.com

2-1.請求

首先一個請求,包含有請求頭,請求行,請求正文。愛掏網 - it200.com具體是怎樣境,看下面的代碼

axios({
  method: 'post',
  url: '/user/12345',
  headers:{
    'Content-Type':'application/x-www-form-urlencoded'  
  },
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
});
復制代碼

如上所述

methodurl就是這個請求的請求行(這里是請求行部分信息,其實請求行還包括http協議的版本等信息)。愛掏網 - it200.comheaders中的屬性就是請求頭,里面的屬性,全部包含在請求的header里面,是服務端獲取客戶端版本,緩存等信息的一個途徑。愛掏網 - it200.comdata對應的就是請求正文,也就是平常所說的參數。愛掏網 - it200.com

2-2.響應

在請求發出去,并且響應已經回來的時候,就時候信息可分為響應行,響應頭,響應正文。愛掏網 - it200.com

響應行

引用看云的一個請求作為實例,如下代碼就是這個請求的響應行,返回請求的http協議及版本,狀態碼,請求狀態等描述信息。愛掏網 - it200.com

Request URL:https://www.kancloud.cn/yunye/axios/comment?article_id=234845&page=1
Request Method:GET
Status Code:200 OK
Remote Address:117.23.61.221:443
復制代碼

響應頭

響應頭和請求頭格式一致,返回版本,緩存等信息。愛掏網 - it200.com

響應正文

平常接觸最多的就是響應正文,也就是日常開發需要用到的數據。愛掏網 - it200.com開發者拿到這些數據之后,再進行相應的處理。愛掏網 - it200.com

2-3.關于https

關于 https 。愛掏網 - it200.com下面可以先了解下 http 的缺點,https就是http基礎上做的加密處理。愛掏網 - it200.com

1.通信使用明文不加密,內容可能被竊聽 2.不驗證通信方身份,可能遭到偽裝 3.無法驗證報文完整性,可能被篡改

2-4.相關資料

關于http與https就簡單說到這里,詳細的推薦看下下面的資料。愛掏網 - it200.com

HTTP教程

HTTP協議【詳解】——經典面試題

一個故事講完https

上面提到響應狀態碼,在這里也簡單寫下。愛掏網 - it200.com在前端方面,請求接口可能會接觸到各種情況,常見的有下面幾個,應該怎么解決,就是具體問題,具體分析。愛掏網 - it200.com

狀態碼 意義
200 請求成功
400 參數錯誤
403 拒絕或者禁止訪問(無權限訪問)
404 地址不存在
405 客戶端請求中的方法被禁止(一般是請求方式錯誤)
500 服務器報錯
502 請求超時,無效網關
503 服務器超載或者維護,無法響應

3-1.參考資料

詳細的狀態碼請參考下面內容。愛掏網 - it200.com

HTTP狀態碼

4-1.XSS

XSS(Cross Site Scripting)是跨站腳本攻擊,為了區分CSS,所以縮寫為XSS。愛掏網 - it200.comXSS攻擊方式是往Web頁面插入惡意的 JavaScript 代碼,當用戶瀏覽網頁的時候,插入的代碼就是被執行,從而達到攻擊的目的。愛掏網 - it200.com

其中應用比較多的一個就是,在網頁一些公用的交互區域。愛掏網 - it200.com比如搜索的文本框,除了可以輸入一些關鍵字,還可以輸入一些 JavaScript 代碼,一旦代碼點擊搜索,代碼就會被執行,達到攻擊的目的。愛掏網 - it200.com如下例子


復制代碼

在文本框中輸入以上代碼,然后點擊提交,就會把用戶的cookie彈出來。愛掏網 - it200.com

XSS防范

1.將重要的cookies標記為HTTP ONLY,讓JavaScript代碼無法調用,只有http能調用。愛掏網 - it200.com或者將重要的信息保存在session里面。愛掏網 - it200.com

2.只允許用戶輸入我們期望的數據。愛掏網 - it200.com如消費金額框只能輸入數字和小數點。愛掏網 - it200.com

3.對數據進行加密處理。愛掏網 - it200.com

4.過濾或者移除特殊的HTML標簽,過濾JavaScript代碼等。愛掏網 - it200.com

4-2.CSRF

CSRF(Cross-site request forgery)是跨站請求偽造。愛掏網 - it200.comXSS利用站點內的信任用戶,與XSS不同,CSRF是通過偽裝來自受信任用戶,在受信任的網站進行請求,盜取信息。愛掏網 - it200.com其實就是攻擊者盜用了受害者的身份,以受害者的名義向網站發送惡意請求。愛掏網 - it200.com

CSRF攻擊的思想

引用CSRF攻擊原理及防御的一張圖進行解釋。愛掏網 - it200.com

image

圖片來自:CSRF攻擊原理及防御

根據步驟,看了圖,相信不難理解,就是在一個網站里面保留了cookie,然后訪問了一些危險網站,然后被危險網站盜用了用戶信息。愛掏網 - it200.com

CSRF的防御

1.在表單里增加Hash值,以認證這確實是用戶發送的請求,然后在服務器端進行Hash值驗證。愛掏網 - it200.com

2.驗證碼:每次的用戶提交都需要用戶在表單中填寫一個圖片上的隨機字符串。愛掏網 - it200.com

3.修改,增加重要信息,比如密碼,個人信息的操作,盡量使用post。愛掏網 - it200.com避免使用get把信息暴露在url上面。愛掏網 - it200.com

4-3.反爬蟲

和之前的防護XSS和CSRF攻擊目的不一樣,反爬蟲是為了防止網站重要的數據被別人拿走,比如電商的交易額,電影網站的票房統計,音樂網站的評論等。愛掏網 - it200.com

反擊爬蟲,前端工程師的腦洞可以有多大?

1.瀏覽器通過DNS對URL進行解析,找出對應的IP地址;

2.向IP地址發起網絡請求,進行http協議會話:客戶端發送報頭(請求報頭),服務端回饋報頭(響應報頭)

3.服務器根據請求,交給后臺處理,處理完成后返回文件數據,瀏覽器接收文件數據(HTML、JS、CSS、圖象等);返回一個頁面(根據頁面上的外鏈的URL重新發送請求獲取)

4.瀏覽器接收文件完畢,對加載到的資源進行語法解析,以及相應的內部數據結構(網頁渲染)

跨域這方面,平常接觸的不多,我們這邊遇到也是讓后臺允許跨域(跨域資源共享),但是這個跨域,也是一個繞不開的話題,受限于篇幅,下面簡單進行講解。愛掏網 - it200.com

6-1.情形分析

URL 說明 是否允許通信
http://www.example.com/a.js,http://www.example.com/lab/b.js 同一域名,不同文件或路徑 允許
http://www.example.com:8000/a.js,http://www.example.com/b.js 同一域名,不同端口 不允許
http://www.example.com/a.js,https://www.example.com/b.js 同一域名,不同協議 不允許
http://www.example.com/a.js,http://192.168.2xx.2x/b.js 域名和域名對應相同ip 不允許
http://www.example.com/a.js,http://x.example.com/b.js,http://domain.com/c.js 主域相同,子域不同 不允許
http://www.example.com/a.js,http://www.demo.com/b.js 不同域名 不允許

6-2.解決方案

網上的針對跨域的解決方案有很多,大家參考著看就好。愛掏網 - it200.com雖然羅列這么多,但是我只用過兩種。愛掏網 - it200.com

1、 jsonp

2、 document.domain + iframe

3、 location.hash + iframe

4、 window.name + iframe

5、 postMessage

6、 跨域資源共享(CORS)

7、 nginx代理

8、 nodejs中間件代理

9、 WebSocket協議

6-3.參考資料

前端常見跨域解決方案(全)

前端跨域知識總結

這里只講個大概,具體操作得靠自己自行問搜索引擎。愛掏網 - it200.com

7-1.首屏優化

按需加載,非首屏圖片使用預加載或懶加載,DNS,壓縮代碼,合并圖片,減少請求等。愛掏網 - it200.com

7-2.算法優化

減少沉余的代碼,控制循環的次數,避免巨大函數等。愛掏網 - it200.com

作為前端開發者,在SEO方面接觸得應該不少。愛掏網 - it200.com前端方面,注意SEO的點也不少。愛掏網 - it200.com下面簡單寫下,在我開發的項目里面,也有幾個項目是需要做SEO的,個人的建議如下幾點:

8-1.meta標簽

可定義關鍵詞、網站描述

"keywords" content="關鍵詞1,關鍵詞2" />

"description" content="描述詞1,描述詞2" />
復制代碼

8-2.語義化html標簽

一方面是,利用html標簽,達到語義化的目的,比如列表使用ul,ol。愛掏網 - it200.com表格使用table等,不建議什么元素都使用div。愛掏網 - it200.com

另一方面是盡可能使用html5提供的具有語義化的標簽。愛掏網 - it200.com

以前寫法

"header">
"main">
"footer">
復制代碼

建議寫法

復制代碼

8-3.html嵌套級別不宜過多

這一點就是盡量使html做到扁平化,避免嵌套過多,但是這點相對而言,難度比較大。愛掏網 - it200.com

8-4.img標簽四大屬性不能省

"" alt="圖片描述" width="" height=""/>
復制代碼

alt屬性是為了讓圖片因網速慢、src引用錯誤、瀏覽器禁用圖像、用戶使用屏幕閱讀器等情況,未成功顯示時候,仍可以顯示文本,讓用戶可大概知道這張圖片大概是什么。愛掏網 - it200.com

width和height是為了防止因為圖片無法顯示,造成頁面重新渲染,或者布局錯亂。愛掏網 - it200.com

8-5.h1-h6標簽的使用

1.一個頁面建議只出現一個h1標簽,而且一般是放在網頁log上面使用。愛掏網 - it200.com

2.h2標簽一般用于詳情頁的主標題。愛掏網 - it200.com詳情頁沒有logo,標題使用h1。愛掏網 - it200.com如有副標題,使用h3。愛掏網 - it200.com

3.h1-h6標簽自帶權重,如果只為了設置字體大小,或者區分樣式,不適合使用h1-h6。愛掏網 - it200.com

8-6.其它方面

關于SEO的其他方式,在網上看到有這樣的方法,但是我自己在開發上面沒嘗試過這樣做,這里就簡單羅列下,大家參考下。愛掏網 - it200.com

避免 iframe 標簽

重要內容謹慎使用 display:none;

a標簽盡量添加title屬性

利用布局,把重要內容HTML代碼放在最前

使用”rel=nofollow”屬性,集中網站權重

最近一段時間很流行前后分離,以及單頁應用。愛掏網 - it200.com但關于前后分離和單頁應用這個怎么做SEO現在不清楚(目前我了解的是沒法做)。愛掏網 - it200.com我們現在的做法就是需要做SEO的項目,前端只負責切圖,然后后臺鋪數據,服務端渲染,不是前端渲染。愛掏網 - it200.com

棧(stack)會自動分配內存空間,會自動釋放。愛掏網 - it200.com堆(heap)動態分配的內存,大小不定也不會自動釋放。愛掏網 - it200.com

基本類型:Undefined、Null、Boolean、Number 和 String,這5中基本數據類型可以直接訪問,他們是按照值進行分配的,存放在棧(stack)內存中的簡單數據段,數據大小確定,內存空間大小可以分配。愛掏網 - it200.com

如下例子

let a=1;
let b=a;
復制代碼

如果修改了b

b=2;
復制代碼

雖然b一開始是通過a賦值,但是a和b是獨立的儲存在棧內存里面,修改其中一個,不會對另一個有任何影響。愛掏網 - it200.com

引用類型:即存放在堆(heap)內存中的對象,變量實際保存的是一個指針,這個指針指向另一個位置。愛掏網 - it200.com

如下例子

let a={name:'守候'};
let b=a;
復制代碼

image

如果修改了b

b.name='sh';
復制代碼

image

b通過a賦值,a和b就共用了一個堆內存,修改了a或者b,都直接修改了堆內存的值,就會對另一個產生影響。愛掏網 - it200.com

關于這兩個的概念,現在沒怎么聽說了。愛掏網 - it200.com可能是因為現在主流的就是PC和手機是分開兩個項目的原因,也可能是因為這兩個概念更應該是設計圖的工作。愛掏網 - it200.com上一次和別人談論這個問題,還是在一年前,那個時候我還是切圖仔。愛掏網 - it200.com

但是關于這兩個概念的區別,大家知道一下就好,下面看兩張圖片估計就差不多懂了。愛掏網 - it200.com

image

圖片來自:響應式和自適應有什么區別?(這篇文章估計也是抄襲的,但是由于圖片我也找不到出處了,就聲明這個了)

簡單來說:

自適應:一個網頁,根據屏幕寬度的改變而改變。愛掏網 - it200.com代碼只有一套。愛掏網 - it200.com在個別的屏幕上,排版這個比較丑,但是設計,開發成本低。愛掏網 - it200.com

響應式:一個網頁,根據屏幕的寬度的改變而展示不同的效果,代碼基本是兩套以上。愛掏網 - it200.com在所有屏幕上都展示很好的效果,但是設計,開發成本高。愛掏網 - it200.com

自適應實例:攜程

響應式實例:segmentfault

之所以要發這么一片,總結這一些概念,是因為我和別人交談的時候,遇到這些總是有一個是是而非的概念。愛掏網 - it200.com所以最近就抽空看了下這些概念,也和大家分享下這一些知識。愛掏網 - it200.com這些概念知識,可能只是了解一下,大概知道就好,有些可能要深入了解下,這個就看個人所需了。愛掏網 - it200.com最后,如果大家還有什么要推薦的概念知識是比較重要,需要了解的,歡迎在評論區留言。愛掏網 - it200.com

-------------------------華麗的分割線--------------------



原文發布時間為:2024年06月25日
作者:守候i
本文來源:掘金?如需轉載請聯系原作者
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 欧美激情在线播放 | 中文字幕人成乱码在线观看 | 91精品国产91久久综合桃花 | 日韩在线小视频 | 欧美午夜影院 | 中文字幕高清av | 成人av免费在线观看 | 97国产一区二区 | 亚洲一一在线 | 国产色婷婷久久99精品91 | 国产在线播| 中文亚洲视频 | 日韩有码一区 | 成人毛片一区二区三区 | 国产激情在线 | 亚洲国产福利视频 | 国产一区二区三区在线看 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 欧美成人一区二区 | 欧美精品网站 | 日日摸夜夜添夜夜添特色大片 | 日韩精品在线观看视频 | 国产精品欧美一区二区三区 | 在线观看免费av网站 | 久在线 | 久久免费国产 | 99精品在线 | 鸳鸯谱在线观看高清 | 国产精品jizz在线观看老狼 | 日日操网站 | 国产精品自拍视频 | 成人午夜看片 | 欧美日韩精品免费观看 | 成人欧美一区二区三区在线观看 | 精品videossex高潮汇编 | 中文av网站| 久久伊人操 | 久久丁香 | 九色国产 | 欧美中文字幕一区 | 国产成人在线播放 |