国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门

聚集網(jujiwang.com) - 收錄免費分類目錄信息軟文發布網址提交
免費加入

提升性能:通過 Accept-Encoding 主導 web 請求壓縮 (提升性能的手段)

文章編號:10838時間:2024-09-29人氣:


Accept

前言

在 Web 開發中,性能至關重要。用戶期望網站快速加載并響應迅速,否則他們可能會放棄你的網站并轉而尋找其他更快的選擇。壓縮是提高 Web 性能的有效技術之一,可以通過減小傳輸文件的大小來加快頁面加載速度。

什么是請求壓縮?

請求壓縮是一種通過使用壓縮算法(例如 GZIP 或 Brotli)壓縮 HTTP 請求和響應正文以減小其大小的技術。這樣做的好處如下:減少服務器和客戶端之間傳輸的數據量縮短頁面加載時間節省帶寬

Accept-Encoding 請求頭

Accept-Encoding 請求頭允許客戶端向服務器指示它可以接受哪些壓縮算法。當服務器收到一個包含 Accept-Encoding 頭的請求時,它將使用客戶端指定的算法之一(如果可用)來壓縮響應正文。Accept-Encoding 頭的語法如下:```Accept-Encoding: [, ]...```其中 是服務器支持的壓縮算法,例如:gzipbr (Brotli)deflate客戶端可以指定多個算法,按優先級順序排列。服務器將選擇客戶端最喜歡的算法,如果它可用的話。

啟用請求壓縮

在大多數 Web 服務器(例如 Apache、Nginx 和 IIS)上,請求壓縮默認處于啟用狀態。但是,你可以檢查配置文件以確保它是啟用的。Apache在 Apache 中,在 .htaccess 文件中添加以下行以啟用請求壓縮:```SetOutputFilter DEFLATE```Nginx在 Nginx 中,在 nginx.conf 文件中添加以下行以啟用請求壓縮:```gzip on;```IIS在 IIS 中,通過 IIS 管理器啟用請求壓縮:1. 打開 IIS 管理器。2. 選擇你的網站或應用程序池。3. 在“功能視圖”窗格中,雙擊“HTTP 壓縮”。4. 選中“啟用動態壓縮”復選框。

測試請求壓縮

你可以使用不同的工具來測試請求壓縮,例如:WebPageTest()GTmetrix()PageSpeed Insights()這些工具將分析你的網站并提供有關你正在使用的壓縮算法以及你可以進行哪些改進的報告。

使用 Content-Encoding 響應頭

當服務器使用壓縮算法壓縮響應正文時,它將 Content-Encoding 響應頭添加到響應中。此頭指示客戶端使用的壓縮算法,以便客戶端可以正確解壓縮正文。Content-Encoding 頭的語法如下:```Content-Encoding: ```其中 是服務器用于壓縮響應正文的算法,例如:gzipbrdeflate

瀏覽器支持

所有現代瀏覽器都支持請求和響應壓縮。以下是最流行的瀏覽器及其支持的壓縮算法的列表:| 瀏覽器 | GZIP | Brotli ||---|---|---|| Chrome | 支持 | 支持 || Firefox | 支持 | 支持 || Safari | 支持 | 支持 || Edge | 支持 | 支持 || Internet Explorer | 支持 | 不支持 |

最佳實踐

以下是使用 Accept-Encoding 頭和請求壓縮的一些最佳實踐:在所有 HTTP 請求中包含 Accept-Encoding 頭。優先考慮最有效的壓縮算法,例如 Brotli 和 GZIP。定期測試你的網站以確保啟用并正確配置請求壓縮。考慮使用 HTTP/2,它支持更好的壓縮功能。

結論

通過使用 Accept-Encoding 頭和請求壓縮,你可以顯著提高 Web 性能。通過減小傳輸文件的大小,你可以加快頁面加載速度、節省帶寬并為你的用戶提供更好的整體體驗。遵循本文中概述的最佳實踐以有效地利用請求壓縮。

Accept-Encoding編碼類型

GZIP,由Jean-loup Gailly和Mark Adler創建,最初是為UNIX系統文件設計的壓縮技術,常用的GZIP格式文件在Linux系統中廣泛存在,尤其在互聯網上,它是一種非常普遍的數據壓縮格式。 HTTP協議中的GZIP編碼是一種旨在提升Web應用性能的技術,對于流量較大的網站,通過GZIP壓縮技術可以顯著提高頁面加載速度,用戶在訪問時可以更快地看到網頁內容。 服務器通常會啟用這種功能,當用戶請求訪問時,服務器會壓縮內容再發送給瀏覽器,文本內容通常能壓縮到原始大小的40%左右,從而加快傳輸速度。 然而,這也增加了服務器的處理負擔。 COMPRESS是Unix系統早期的壓縮工具,它產生的壓縮檔案會附上.Z擴展名。 相比GZIP,它在壓縮比例上可能不如后者理想,現在人們通常更傾向于使用GZIP進行檔案壓縮,因為它能提供更好的壓縮效果。 如果需要將多個文件壓縮,通常會先使用tar命令打包,然后再用GZIP處理。

HTTP Keep-Alive模式是什么?

HTTP協議中客戶端發送一個小請求,服務器響應以所期望的信息(例如一個html文件或一副gif圖像)。 服務器通常在發送回所請求的數據之后就關閉連接。 這樣客戶端讀數據時會返回EOF(-1),就知道數據已經接收完全了。 1、什么是Keep-Alive模式?我們知道HTTP協議采用“請求-應答”模式,當使用普通模式,即非KeepAlive模式時,每個請求/應答客戶和服務器都要新建一個連接,完成之后立即斷開連接(HTTP協議為無連接的協議);當使用Keep-Alive模式(又稱持久連接、連接重用)時,Keep-Alive功能使客戶端到服務器端的連接持續有效,當出現對服務器的后繼請求時,Keep-Alive功能避免了建立或者重新建立連接。

http 1.0中默認是關閉的,需要在http頭加入Connection: Keep-Alive,才能啟用Keep-Alive;http 1.1中默認啟用Keep-Alive,如果加入Connection: close ,才關閉。 目前大部分瀏覽器都是用http1.1協議,也就是說默認都會發起Keep-Alive的連接請求了,所以是否能完成一個完整的Keep-Alive連接就看服務器設置情況。

2、啟用Keep-Alive的優點從上面的分析來看,啟用Keep-Alive模式肯定更高效,性能更高。 因為避免了建立/釋放連接的開銷。 下面是RFC 2616上的總結:

By opening and closing fewer TCP connections, CPU time is saved in routers and hosts (clients, Servers, proxies, gateways, tunnels, or caches), and memory used for TCP protocol control blocks can be saved in hosts. HTTP requests and responses can be pipelined on a connection. Pipelining allows a client to make multiple requests without waiting for each response, allowing a single TCP connection to be used much more efficiently, with much lower elapsed time. Network congestion is reduced by reducing the number of packets caused by TCP opens, and by allowing TCP sufficient time to determine the congestion state of the network. Latency on subsequent requests is reduced since there is no time spent in TCPs connection opening handshake. HTTP can evolve more gracefully, since errors can be reported without the penalty of closing the TCP connection. Clients using future versions of HTTP might optimistically try a new feature, but if communicating with an older server, retry with old semantics after an error is reported.

RFC 2616(P47)還指出:單用戶客戶端與任何服務器或代理之間的連接數不應該超過2個。 一個代理與其它服務器或代碼之間應該使用超過2 * N的活躍并發連接。 這是為了提高HTTP響應時間,避免擁塞(冗余的連接并不能代碼執行性能的提升)。

3、回到我們的問題(即如何判斷消息內容/長度的大???)Keep-Alive模式,客戶端如何判斷請求所得到的響應數據已經接收完成(或者說如何知道服務器已經發生完了數據)?我們已經知道了,Keep-Alive模式發送玩數據HTTP服務器不會自動斷開連接,所有不能再使用返回EOF(-1)來判斷(當然你一定要這樣使用也沒有辦法,可以想象那效率是何等的低)!下面我介紹兩種來判斷方法。

3.1、使用消息首部字段Conent-Length故名思意,Conent-Length表示實體內容長度,客戶端(服務器)可以根據這個值來判斷數據是否接收完成。但是如果消息中沒有Conent-Length,那該如何來判斷呢?又在什么情況下會沒有Conent-Length呢?請繼續往下看……

3.2、使用消息首部字段Transfer-Encoding當客戶端向服務器請求一個靜態頁面或者一張圖片時,服務器可以很清楚的知道內容大小,然后通過Content-length消息首部字段告訴客戶端需要接收多少數據。 但是如果是動態頁面等時,服務器是不可能預先知道內容大小,這時就可以使用Transfer-Encoding:chunk模式來傳輸數據了。 即如果要一邊產生數據,一邊發給客戶端,服務器就需要使用Transfer-Encoding: chunked這樣的方式來代替Content-Length。

chunk編碼將數據分成一塊一塊的發生。 Chunked編碼將使用若干個Chunk串連而成,由一個標明長度為0的chunk標示結束。 每個Chunk分為頭部和正文兩部分,頭部內容指定正文的字符總數(十六進制的數字)和數量單位(一般不寫),正文部分就是指定長度的實際內容,兩部分之間用回車換行(CRLF)隔開。 在最后一個長度為0的Chunk中的內容是稱為footer的內容,是一些附加的Header信息(通常可以直接忽略)。

Chunk編碼的格式如下:

Chunked-Body = *chunk

chunk = chunk-size [ chunk-ext ] CRLF

chunk-data CRLF

hex-no-zero =

chunk-size = hex-no-zero *HEX

chunk-ext = *( ; chunk-ext-name [ = chunk-ext-value ] )

chunk-ext-name = token

chunk-ext-val = token | quoted-string

chunk-data = chunk-size(OCTET)

footer = *entity-header

即Chunk編碼由四部分組成:1、0至多個chunk塊,2、0 CRLF,3、footer,4、CRLF.而每個chunk塊由:chunk-size、chunk-ext(可選)、CRLF、chunk-data、CRLF組成。

4、消息長度的總結其實,上面2中方法都可以歸納為是如何判斷http消息的大小、消息的數量。 RFC 2616對消息的長度總結如下:一個消息的transfer-length(傳輸長度)是指消息中的message-body(消息體)的長度。 當應用了transfer-coding(傳輸編碼),每個消息中的message-body(消息體)的長度(transfer-length)由以下幾種情況決定(優先級由高到低):

任何不含有消息體的消息(如1XXX、204、304等響應消息和任何頭(HEAD,首部)請求的響應消息),總是由一個空行(CLRF)結束。 如果出現了Transfer-Encoding頭字段 并且值為非“IDEntity”,那么transfer-length由“chunked” 傳輸編碼定義,除非消息由于關閉連接而終止。 如果出現了Content-Length頭字段,它的值表示entity-length(實體長度)和transfer-length(傳輸長度)。如果這兩個長度的大小不一樣(i.e.設置了Transfer-Encoding頭字段),那么將不能發送Content-Length頭字段。并且如果同時收到了Transfer-Encoding字段和Content-Length頭字段,那么必須忽略Content-Length字段。 如果消息使用媒體類型“multipart/byteranges”,并且transfer-length 沒有另外指定,那么這種自定界(self-delimiting)媒體類型定義transfer-length 。除非發送者知道接收者能夠解析該類型,否則不能使用該類型。 由服務器關閉連接確定消息長度。(注意:關閉連接不能用于確定請求消息的結束,因為服務器不能再發響應消息給客戶端了。)

為了兼容HTTP/1.0應用程序,HTTP/1.1的請求消息體中必須包含一個合法的Content-Length頭字段,除非知道服務器兼容HTTP/1.1。 一個請求包含消息體,并且Content-Length字段沒有給定,如果不能判斷消息的長度,服務器應該用用400 (bad request) 來響應;或者服務器堅持希望收到一個合法的Content-Length字段,用 411 (length required)來響應。

所有HTTP/1.1的接收者應用程序必須接受“chunked” transfer-coding (傳輸編碼),因此當不能事先知道消息的長度,允許使用這種機制來傳輸消息。 消息不應該夠同時包含 Content-Length頭字段和non-identity transfer-coding。 如果一個消息同時包含non-identity transfer-coding和Content-Length ,必須忽略Content-Length 。

5、HTTP頭字段總結最后我總結下HTTP協議的頭部字段。

1、 Accept:告訴WEB服務器自己接受什么介質類型,*/* 表示任何類型,type/* 表示該類型下的所有子類型,type/sub-type。 2、 Accept-Charset: 瀏覽器申明自己接收的字符集

Accept-Encoding: 瀏覽器申明自己接收的編碼方法,通常指定壓縮方法,是否支持壓縮,支持什么壓縮方法(gzip,deflate)

Accept-Language:瀏覽器申明自己接收的語言

語言跟字符集的區別:中文是語言,中文有多種字符集,比如big5,gb2312,gbk等等。 3、 Accept-Ranges:WEB服務器表明自己是否接受獲取其某個實體的一部分(比如文件的一部分)的請求。 bytes:表示接受,none:表示不接受。 4、 Age:當代理服務器用自己緩存的實體去響應請求時,用該頭部表明該實體從產生到現在經過多長時間了。 5、 Authorization:當客戶端接收到來自WEB服務器的 WWW-Authenticate 響應時,用該頭部來回應自己的身份驗證信息給WEB服務器。 6、 Cache-Control:請求:no-cache(不要緩存的實體,要求現在從WEB服務器去取)

max-age:(只接受 Age 值小于 max-age 值,并且沒有過期的對象)

max-stale:(可以接受過去的對象,但是過期時間必須小于 max-stale 值)

min-fresh:(接受其新鮮生命期大于其當前 Age 跟 min-fresh 值之和的緩存對象)

響應:public(可以用 Cached 內容回應任何用戶)

private(只能用緩存內容回應先前請求該內容的那個用戶)

no-cache(可以緩存,但是只有在跟WEB服務器驗證了其有效后,才能返回給客戶端)

max-age:(本響應包含的對象的過期時間)

ALL: no-store(不允許緩存) 7、 Connection:請求:close(告訴WEB服務器或者代理服務器,在完成本次請求的響應后,斷開連接,不要等待本次連接的后續請求了)。

keepalive(告訴WEB服務器或者代理服務器,在完成本次請求的響應后,保持連接,等待本次連接的后續請求)。

響應:close(連接已經關閉)。

keepalive(連接保持著,在等待本次連接的后續請求)。

Keep-Alive:如果瀏覽器請求保持連接,則該頭部表明希望 WEB 服務器保持連接多長時間(秒)。 例如:Keep-Alive:300 8、 Content-Encoding:WEB服務器表明自己使用了什么壓縮方法(gzip,deflate)壓縮響應中的對象。 例如:Content-Encoding:gzip 9、Content-Language:WEB 服務器告訴瀏覽器自己響應的對象的語言。 10、Content-Length: WEB 服務器告訴瀏覽器自己響應的對象的長度。 例如:Content-Length: 11、Content-Range: WEB 服務器表明該響應包含的部分對象為整個對象的哪個部分。 例如:Content-Range: bytes -/ 12、Content-Type: WEB 服務器告訴瀏覽器自己響應的對象的類型。 例如:Content-Type:application/xml 13、ETag:就是一個對象(比如URL)的標志值,就一個對象而言,比如一個 html 文件,如果被修改了,其 Etag 也會別修改,所以ETag 的作用跟 Last-Modified 的作用差不多,主要供 WEB 服務器判斷一個對象是否改變了。 比如前一次請求某個 html 文件時,獲得了其 ETag,當這次又請求這個文件時,瀏覽器就會把先前獲得的 ETag 值發送給WEB 服務器,然后 WEB 服務器會把這個 ETag 跟該文件的當前 ETag 進行對比,然后就知道這個文件有沒有改變了。 14、 Expired:WEB服務器表明該實體將在什么時候過期,對于過期了的對象,只有在跟WEB服務器驗證了其有效性后,才能用來響應客戶請求。 是 HTTP/1.0 的頭部。 例如:Expires:Sat, 23 May 2009 10:02:12 GMT 15、 Host:客戶端指定自己想訪問的WEB服務器的域名/IP 地址和端口號。 例如:Host 16、 If-Match:如果對象的 ETag 沒有改變,其實也就意味著對象沒有改變,才執行請求的動作。 17、 If-None-Match:如果對象的 ETag 改變了,其實也就意味著對象也改變了,才執行請求的動作。 18、 If-Modified-Since:如果請求的對象在該頭部指定的時間之后修改了,才執行請求的動作(比如返回對象),否則返回代碼304,告訴瀏覽器該對象沒有修改。 例如:If-Modified-Since:Thu, 10 Apr 2008 09:14:42 GMT 19、 If-Unmodified-Since:如果請求的對象在該頭部指定的時間之后沒修改過,才執行請求的動作(比如返回對象)。 20、 If-Range:瀏覽器告訴 WEB 服務器,如果我請求的對象沒有改變,就把我缺少的部分給我,如果對象改變了,就把整個對象給我。 瀏覽器通過發送請求對象的 ETag 或者 自己所知道的最后修改時間給 WEB 服務器,讓其判斷對象是否改變了。 總是跟 Range 頭部一起使用。 21、 Last-Modified:WEB 服務器認為對象的最后修改時間,比如文件的最后修改時間,動態頁面的最后產生時間等等。 例如:Last-Modified:Tue, 06 May 2008 02:42:43 GMT 22、 Location:WEB 服務器告訴瀏覽器,試圖訪問的對象已經被移到別的位置了,到該頭部指定的位置去取。 例如:Location:23、 Pramga:主要使用 Pramga: no-cache,相當于 Cache-Control: no-cache。 例如:Pragma:no-cache 24、 Proxy-Authenticate: 代理服務器響應瀏覽器,要求其提供代理身份驗證信息。 Proxy-Authorization:瀏覽器響應代理服務器的身份驗證請求,提供自己的身份信息。 25、 Range:瀏覽器(比如 Flashget 多線程下載時)告訴 WEB 服務器自己想取對象的哪部分。 例如:Range: bytes=- 26、 Referer:瀏覽器向 WEB 服務器表明自己是從哪個 網頁/URL 獲得/點擊 當前請求中的網址/URL。 例如:Referer:27、 Server: WEB 服務器表明自己是什么軟件及版本等信息。 例如:Server:Apache/2.0.61 (Unix) 28、 User-Agent: 瀏覽器表明自己的身份(是哪種瀏覽器)。 例如:User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/ Firefox/2、0、0、14 29、 Transfer-Encoding: WEB 服務器表明自己對本響應消息體(不是消息體里面的對象)作了怎樣的編碼,比如是否分塊(chunked)。 例如:Transfer-Encoding: chunked 30、 Vary: WEB服務器用該頭部的內容告訴 Cache 服務器,在什么條件下才能用本響應所返回的對象響應后續的請求。 假如源WEB服務器在接到第一個請求消息時,其響應消息的頭部為:Content-Encoding: gzip; Vary: Content-Encoding那么 Cache 服務器會分析后續請求消息的頭部,檢查其 Accept-Encoding,是否跟先前響應的 Vary 頭部值一致,即是否使用相同的內容編碼方法,這樣就可以防止 Cache 服務器用自己 Cache 里面壓縮后的實體響應給不具備解壓能力的瀏覽器。 例如:Vary:Accept-Encoding 31、 Via: 列出從客戶端到 OCS 或者相反方向的響應經過了哪些代理服務器,他們用什么協議(和版本)發送的請求。 當客戶端請求到達第一個代理服務器時,該服務器會在自己發出的請求里面添加 Via 頭部,并填上自己的相關信息,當下一個代理服務器收到第一個代理服務器的請求時,會在自己發出的請求里面復制前一個代理服務器的請求的Via 頭部,并把自己的相關信息加到后面,以此類推,當 OCS 收到最后一個代理服務器的請求時,檢查 Via 頭部,就知道該請求所經過的路由。 例如:Via:1.0 :80 (squid/13)

HTTP 請求消息頭部實例:

User-Agent:Mozilla/5、0 (Windows; U; Windows NT 5、1; zh-CN; rv:1、8、1、14) Gecko/ Firefox/2、0、0、14

Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0、9,text/plain;q=0、8,image/png,*/*;q=0、5

Accept-Language:zh-cn,zh;q=0、5

Accept-Encoding:gzip,deflate

Accept-Charset:gb2312,utf-8;q=0、7,*;q=0、7

Keep-Alive:300

Connection:keep-alive

Cookie:userId=C5bYpXrimdmsiQmsBPnE1Vn8ZQmdWSm3WRlEB3vRwTnRtW -- Cookie

If-Modified-Since:Sun, 01 Jun 2008 12:05:30 GMT

Cache-Control:max-age=0

HTTP 響應消息頭部實例:

Status:OK - 200 -- 響應狀態碼,表示 web 服務器處理的結果。

Date:Sun, 01 Jun 2008 12:35:47 GMT

Server:Apache/2、0、61 (Unix)

Last-Modified:Sun, 01 Jun 2008 12:35:30 GMT

Accept-Ranges:bytes

Content-Length

Cache-Control:max-age=120

Expires:Sun, 01 Jun 2008 12:37:47 GMT

Content-Type:application/xml

X-Cache:HIT from 236-41、D、sina、com、cn -- 反向代理服務器使用的 HTTP 頭部

Via:1.0 :80 (squid/13)

Connection:close

本節摘自:

HTTP調試工具 fiddler圖文使用教程詳細介紹

Fiddler可以幫您記錄,調試Microsoft Internet Explorer與Web應用程序的交互,找到Web程序運行性能的瓶頸,還有如查看向Web服務器發送cookies的內容,下載內容的大小等功能。

說多一點是,Fiddler站在用戶與Web服務器的中間,由它轉發請求與響應,因此Fiddler作為一個可檢視,可定制的工具,能讓您了解交互過程細節,有利于解決Web程序的交互問題。如下列示意圖:

web

Internet Explorer - WinINET? (由Fiddler運行時自動注冊) - Fiddler - Web Server

Fiddler可以用于: 性能測試。 如查看頁面的大小調試。 在會話選項中,可暫停,編輯HTTP通訊 。

Fiddler不僅可用于Microsoft Internet Explorer,其它瀏覽器,如Mozilla Firefox,Opera等也適用。 軟件界面友好,精于HTTP,可能比NetMon易用,還可用進行擴展。 官方站點上,還有視頻教學。

這個工具我已經使用比較長時間了,對我的幫助也挺大,今天我翻譯的微軟的文章,讓更多的朋友都來了解這個不錯的工具,也是我第一次翻譯文章,不恰當之處請大家大家多多指正。

介紹:

你是不是曾經疑惑過你的web程序和IE是如何交互的?你是不是遇到過一些奇怪的而你又無法解決的性能瓶頸?你是不是對那些發送給服務器端的cookie 和那些你下載下來的被標記為可緩存的內容感到好奇?

Fiddler官方網站及下載地址:微 軟的Fiddler能夠幫助你回答以上的問題,不但如此,它還是一個http調試代理,它能 夠記錄所有的你電腦和互聯網之間的http通訊,Fiddler 可以也可以讓你檢查所有的http通訊,設置斷點,以及Fiddle 所有的“進出”的數據(指cookie,html,js,css等文件,這些都可以讓你胡亂修改的意思)。 Fiddler 要比其他的網絡調試器要更加簡單,因為它僅僅暴露http通訊還有提供一個用戶友好的格式。

Fiddler 包含一個簡單卻功能強大的基于JScript 事件腳本子系統,他非常靈活性非常棒,可以支持眾多的http調試任務。 Fiddler 是用C#寫出來的。

。 。 。 。 。 接下來是一大段廢話,關于如何安裝的,只要一路next,就可以了。 這段話我就跳過,直接切入正題了。

Running Fiddler

當你啟動了Fiddler,程序將會把自己作為一個微軟互聯網服務的系統代理中去。 你可以通過檢查代理設置對話框來驗證Fiddler是被正確地截取了web請求。 操作是這樣的:點擊IE設置,工具,局域網設置,最后點擊高級。

作為系統代理,所有的來自微軟互聯網服務(WinInet)的http請求再到達目標Web服務器的之前都會經過Fiddle,同樣的,所有的Http響應都會在返回客戶端之前流經Fiddler。這樣,就能明白Fiddler很多作用了吧!

當你關閉Fiddler的時候,它就會自動從系統注冊表中移出,換句話說,當你關閉了Fiddler后,不會占著茅坑不拉屎。

下面,是一個Fillder的用戶界面,大家可以參考參考其功能。

用Fiddler來做性能測試 HTTP統計視圖通 過顯示所有的Http通訊,Fiddler可以輕松的演示哪些用來生成一個頁面,通過統計頁 面(就是Fiddler左邊的那個大框)用戶可以很輕松的使用多選,來得到一個WEB頁面的“總重量”(頁面文件以及相關js,css等)你也可以很輕松 得看到你請求的某個頁面,總共請求了多少次,以及多少字節被轉化了。

另外,通過暴露HTTP頭,用戶可以看見哪些頁面被允許在客戶端或者是代理端進行緩存。 如果要是一個響應沒有包含Cache-Control 頭,那么他就不會被緩存在客戶端。

用Fiddler來調試

Fiddler支持斷點調試概念,當你在軟件的菜單—rules—automatic breakpoints選項選擇beforerequest,或者當這些請求或響應屬性能夠跟目標的標準相匹配,Fiddler就能夠暫停Http通訊, 情切允許修改請求和響應。 這種功能對于安全測試是非常有用的,當然也可以用來做一般的功能測試,因為所有的代碼路徑都可以用來演習。

Session檢查用 戶可以在BuilderPage項種來以手工的方式來創建一個HTTP請求(即在 Fiddler右側的tab的第三個,RequestBUILDER),或者可以使用拖拽操作從Session列表中來移動一個已經存在的請求到 builder page 來再次執行這個請求。 。 。

Fiddler 擴展Fiddler可以使用 framework來對它進行擴展。有2種為Fiddler擴展準備的基本機制:

自定義規則,和規則檢查。

使用腳本化的規則來擴展Fiddler

Fiddler支持JScript 引擎,它可以允許用戶自動地修改Http請求和響應。 這個引擎能夠在可視化界面修改在FiddlerUI中的Session,可以從列表中提取你感興趣的錯誤,也可以移除你不感興趣的Session。

以下的示例代碼演示當cookie被加載的時候把界面變成紫色。

static function OnBeforeRequest(){ if ((Cookie)){ oSession[ui-color] = purple; oSession[ui-bold] = cookie; }}

通過加入Inspectors來擴展Fiddler用戶可以加入一個Inspector插件對象,來使用下的任何語言來編寫Fiddler擴展。 RequestInspectors 和 ResponseInspectors提供一個格式規范的,或者是被指定的(用戶自定義)Http請求和響應視圖。

默認安裝中,Fiddler加入了一下的Inspectors:

Request Inspectors

[RW] Headers—Shows request headers and status.

[RW] TextView—Shows the request body in a text box. (原始的請求body視圖)

[RW] HexView—Shows the request body in a hexadecimal view. (body的16進制視圖)

[RO] XML—Shows the request body as an XML DOM in a tree view.(以XML方式展示請求)

Response Inspectors

[RW] Transformer—Removes GZip, DEFLATE, and CHUNKED encodings for easier debugging.

[RW] Headers—Shows response headers and status.

[RW] TextView—Shows the response body in a text box.

[RW] HexView—Shows the response body in a hexadecimal view. (16進制視圖)

[RO] ImageView—Shows the response body as an Image. Supports all image formats.

[RO] XML—Shows the response body as an XML DOM in a tree view.

[RO] Privacy—Explains the P3P statement in the response headers, if present.(如果在響應頭中有關于隱私策略的說明就展示出來)

學習如何通過Fiddler建立一個速度更快的網站。 在這篇文章中,我們將使用Fiddler去探究HTTP的性能,緩存,以及壓縮。

如果你要是沒有安裝和配置過Fiddler, 請從文章的第一篇開始。

HTTP性能總覽毫 無疑問用戶都喜歡訪問速度快的網站。 用戶是非常的不耐煩,除非你的網站是沒有競爭對手,換句 話就是處于壟斷地位的。 如果你的訪問者來自世界各地,那你就必須要保證你的網站在執行效率方面要非常好,甚至要更加標準。 作為一個國際化的網絡連接點,通 常要受到來自兩個方面的壓力:高訪問量以及低帶寬。

在第一次至關重要的訪問中,用戶必須要下載每一個內容片斷,來生成頁面,包括JS,CSS,Images,HTML,如果你的頁面太難加載(包括IIS接到請求執行并返回給客戶端HTML),訪問者也許就會離開你的頁面!

通過暴露所有的HTTP通訊,Fiddler很容易得向你展示哪些文件經常被用于生成一個頁面,

Shift+click 可以在Fiddler左邊框的會話列表中多選會話,來計算那些被選會話的“頁面總重量”。 那些被轉換成字節的數量。

如果你想讓你的客戶在第一次訪問的時候就留下深刻的印象 ,那么最好的,也是唯一的途徑就是返回給客戶更少的文件。

1 使用更少的圖畫

2 將所有的CSS濃縮到一個CSS文件中

3 將所有的腳本濃縮到一個JS文件中

4 簡化你的頁面時間

5 使用HTTP壓縮

如果要是你已經對用戶的第一次來訪的性能進行了優化,那么你可以通過Http 緩存的優勢來使得你的網站訪問速度更快!

HTTP 緩存介紹 2種方式來提升你的web 應用程序的速度:

減少請求和響應的往返次數

減少請求和響應的往返字節大小。

HTTP 緩存是最好的減少客戶端服務器端往返次數的辦法。 緩存提供了提供一種機制來保證客戶端 或者代理能夠存儲一些東西,而這些東西將會在稍后的HTTP 響應中用到的。 (即第一次請求了,到了客戶端,緩存起來,下次如果頁面還要這個JS文件或者CSS文件啥的,就不要到服務器端去取下來了,但是還是要去服 務器上去訪問一次,因為請求要對比ETAG值,關于這個值,我將會在下次翻譯中介紹其作用)這樣,就不用讓文件再次跨越整個網絡了。

緩存相關的請求頭

為了提高性能,微軟的IE和其他的web客戶端總是想盡辦法來維持從遠程服務器上下載下來的本地的緩存。

當客戶端需要一個資源(html,…),他們有3種可能的動作:

1 發送一個一般的HTTP請求到遠程服務器端,請求這個資源。

2 發送一個有條件的HTTP請求到服務器,條件就是如果它不同于本地的緩存版本。

3 如果緩存的拷貝可用,就使用本地的緩存資源。

當發送一個請求,客戶也許會使用如下的幾個HEADER

Table 1. Client Cache Headers

Pragma: no-cache

The client is unwilling to accept any cached responses from caches along the route and the origin server must be contacted for a fresh copy of the resource.

If-Modified-Since: datetime

The server should return the requested resource only if the resource has been modified since the date-time provided by the client.

通過

If-None-Match: etagvalue

The server should return the requested resource if the ETAG of the resource is different than the value provided by the client. An ETAG is a unique identifier representing a particular version of a file.

1 Pragma:no-cache 表明客戶端不愿意接受緩存請求,它需要的是最即時的資源。

2 If-Modified-Since: datetime 表明如果這個資源自從上次被客戶端請求,就已經修改了,那么服務器就會返回給客戶端最新的。

3 If-None-Match: etagvalue 如果客戶端資源的ETAG值跟服務器端不一致了,那么服務器端返回最新的資源。 ETAG就是一個唯一的ID,用來表示一個文件的一個特定的版本。

如 果要是這些有條件的請求,也就是含有If-Modified-Since 或者 If-None-MatchHeader頭的請求,服務器將會以HTTP/304 Not Modified 來作為響應,那么客戶端就知道可以使用客戶端的緩存了。 否則,服務器將會返回一個新的響應并且客戶端就會拋棄過期的緩存資源。

你 可以觀察2個連貫的請求,來請求同一個圖片,你會在Fiddler中發現:在第一個本地緩存 版本中,服務器返回一個含有ETAG的文件,和一個含有最后修改日期的文件,在這個第一次的請求會話中,一個本地的緩存版本已經可以使用了。 這樣一來,一 個有條件的請求就被創建出來。 然后你再次請求這個圖片的時候,他就就會響應一個本地緩存的文件,當然前提是第一次緩存的圖片的ETAG值或者If- Modified-Since 值跟服務器上匹配的話,服務器就響應一個304給客戶端。

GET /images/ HTTP/1.1

HTTP/1.1 200 OK

Date: Tue, 08 Mar 2006 00:32:46 GMT

Content-Length: 6171

Content-Type: image/jpeg

ETag: 40c7f76e8d30c31:2fe20

Last-Modified: Thu, 12 Jun 2003 02:50:50 GMT

GET /images/ HTTP/1.1

If-Modified-Since: Thu, 12 Jun 2003 02:50:50 GMT

If-None-Match: 40c7f76e8d30c31:2fe20

HTTP/1.1 304 Not Modified

因為一個HTTP304響應僅僅包含頭,沒有body,所有它在穿越互聯網的時候要比攜帶了資源的快很多,盡管如此,HTTP/304響應需要一個服務器的往返,但是通過細心的設置響應頭,web程序員可以消除這種因素,甚至是有條件的請求。

緩存相關響應頭

通常緩存機制是由響應頭來控制的。 HTTP規范描述了Header控制緩存,The optional Cache-Control,Expires(過期)。

Table 2. Common Cache-Control Headers

The response may be stored in any cache, including caches shared among many users.

The response may only be stored in a private cache used by a single user.

The response should not be reused to satisfy future requests.

The response should not be reused to satisfy future requests, and should not be written to disk. This is primarily used as a security measure for sensitive responses.

max-age=#seconds

The response may be reused to satisfy future requests within a certain number of seconds.

must-revalidate

The response may be reused to satisfy future requests, but the origin server should first be contacted to verify that the response is still fresh.

Cache-Control頭的參數設置:

Public 響應會被緩存,并且在多用戶間共享。

Private 響應只能夠作為私有的緩存,不能再用戶間共享。

No-cache 響應不會被緩存

No-store 響應不會被緩存,并且不會被寫入到客戶端的磁盤里,這也是基于安全考慮的某些敏感的響應才會使用這個。

Max-age=#seconds 響應將會某個指定的秒數內緩存,一旦時間過了,就不會被緩存。

Must-revalidate 響應會被重用來滿足接下來的請求,但是它必須到服務器端去驗證它是不是仍然是最新的。

注意:

如果你要想在iis中配置緩存,請參閱溫軟的知識技術文章:

你可以學習更多關于在中使用緩存的知識文章:

如果你發現你經常在你的網站上更新文件,但是并沒有更改文件名字,那你就必須要非常小心地設置 你的緩存生存時間。 例如:如果你要一個圖片文件顯示當前的年份在網站上,你需要保證這個緩存過期時間不能超過一天,否則一個用戶 在12月31號訪問你的網站的時候,在1月1號就不能顯示正確的日期。

由于某些原因,服務器可能會設置:Progma:no-cache 頭,Cache-control:no-cache

Header中的參數:Vary 是一個緩存信號,Vary:User-Agent表示緩存當前的響應,但是僅限于當發送同樣的User-Agent 頭的時候。 指令 Vary:* 就相當于Cache-Control:no-Cache。

Vary就相當于中的緩存的參數一樣,意思是根據什么來緩存,如果要是知道的緩存的使用方法,就很容易明白這個參數的意思。

使用HTTP會話列表,Fiddler用戶可以看到在頁面里包含的HTTP緩存頭。

Fiddler會話列表如果響應不包含Expires或者Cache-Control,那么客戶端就會被迫作為一個有條件的請求,來保證所有的資源都是最新的。

有條件的請求和WinInetCache

IE通過MicrosoftwindowsInternetServices來最大程度的利用緩存服務。WinInet允許用戶配置緩存的大小和行為,設置緩存進行如下操作:

1打開IE,

2工具選項,選擇Inrernet選項,在一般子選項中,臨時文件夾內,點擊設置

下圖就是選村的四種設置:

標記性能問題:你可以使用Fiddler的自定義規則來標記某些你需要的,比如如果某個響應大于25KB,你可以把當前的Session標記為紅色,更加醒目。以下代碼都是在OnBeforeResponse事件中:

// Flag files over 25KB if (){ oSession[ui-color] = red; oSession[ui-bold] = true; oSession[ui-customcolumn] = Large file; }同樣,你也可以標記響應并不指示緩存信息。 // Mark files which do not have caching informationif (!(Expires) !(Cache-Control)){ oSession[ui-color] = purple; oSession[ui-bold] = true; }介紹HTTP壓縮所有的目前流行的WEB服務器和瀏覽器都提供HTTP壓縮支持。 HTTP壓縮可以非常顯著地降 低客戶端和服務器端的通訊量。 節省超過50%的HTML,XML,CSS,JS等文件。 一個瀏覽器發送一個信號給服務器,他可以介紹HTTP壓縮過的內 容,并且會把客戶端所支持的壓縮類型放在請求的Header中,例如:考慮如下的請求:

GET / HTTP/1.1Accept: */*Accept-Language: en-usAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CLR 1.1.4322)Host: 這個Accept-Encoding頭表明IE將愿意接受GZIP格式的和DEFLATE格式的壓縮響應。

相應的響應如下:

HTTP/1.1 200 OKContent-Type: text/html; charset=utf-8Server: Microsoft-IIS/6.0 --Microsoft-HTTPAPI/1.0X-Powered-By: : Accept-EncodingContent-Encoding: gzipDate: Tue, 15 Feb 2006 09:14:36 GMTContent-Length: 1277Connection: closeCache-Control: private, max-age=3600 你可以使用Fiddler來解壓縮這些數據。 實驗表明,使 用HTTP壓縮能大量減少數據往返, 一個普通的CSS文件甚至能減少80%!當然壓縮是以犧牲CPU性能為代價的。 特別是壓縮動態文件,但是一般的權宜之策是壓縮例如JS,CSS等靜態文 件,因為他們在第一次壓縮后,就會被存儲在服務器上,如果要壓縮asp.net動態文件,一定要有個權衡才行

Fiddler(HTTP調試抓包工具)下載地址:

簡單兩步,為ASP.NET Core應用程序開啟gzip+Brotli響應壓縮

在開發過程中,優化網絡帶寬是不可忽視的資源管理策略。 響應壓縮技術能有效節省帶寬,提高訪問速度,特別是在處理文本類型資源如CSS、JavaScript、HTML、XML和JSON時。 微軟 Core內置了gzip和Brotli這兩種壓縮方式,以簡化開發者的設置過程。 gzip是一種常見的HTTP協議壓縮技術,可將純文本內容壓縮到原大小的40%,從而加快數據傳輸。 而Brotli,發布于2015年,是Google為提升網絡壓縮效率而設計的,通常能提供比gzip更高的壓縮密度,且壓縮與解壓縮速度相近。 要判斷瀏覽器是否支持這些壓縮,需查看客戶端的Accept-Encoding請求頭。 例如,Chrome瀏覽器支持gzip、deflate和br(Brotli)編碼。 在 Core中,我們可通過添加依賴注入,配置Startup中的services來啟用壓縮,設置壓縮級別和 MIME 類型,例如針對SVG圖像的壓縮。 在代碼示例中,初始未啟用壓縮時,一個簡單的Action響應為5.3KB,耗時178ms。 啟用gzip和Brotli壓縮后,請求大小降至214字節,耗時僅6ms,性能提升明顯。 通過這些配置,我們可以為 Core應用帶來顯著的帶寬節省和訪問速度提升。

服務器如何開啟gzip服務器如何開啟遠程

nginx打開gzip

NGINX的資源壓縮原理是通過ngx_http_gzip_module攔截請求,對需要gzip的類型做gzip壓縮。這個模塊是默認的基礎,所以你不需要重新編譯就可以打開它。

的響應頭中的內容編碼是gzip。

2.返回的文件大小明顯被壓縮了。

1.通過開發者工具直接在瀏覽器中檢查請求頭和返回頭信息。

2.使用curl命令行curl-i-haccept-encoding:gzip,deflate網站管理員工具中的網頁Gzip檢測

1.首先檢查gzip_types是否包含所需的類型。

2.如果公司有多層緩存機制,確保在每一層都打開gzip壓縮。

3.在上打開gzip_static并確認。 服務器上存在gz文件。

gzip在電腦哪個文件夾里?

IIS6已經內建了Gzip壓縮的支持,可惜,沒有設置更好的管理界面。 所以要打開這個選項,還要費些功夫。

1、如果你需要壓縮靜態文件(HTML),需要在硬盤上建一個目錄,并給它“IUSR_機器名”這個用戶的寫權限。 如果壓縮動態文件(PHP,asp,aspx,ashx)就不需要了,因為它的頁面是每次都動態生成的,壓縮完就放棄。

2、在IIS管理器中,“網站”節點上面(不是某個具體的站點,而是整個網站)右鍵-屬性,選擇“服務”標簽,選上啟用動態內容壓縮,靜態內容壓縮。

3、在IIS管理器左側選中“WEB服務器擴展”,新建一個服務器擴展。 名字任意,比如gzip,文件的路徑是,并啟用這個擴展。

4、停止IIS服務,打開(不停止IIS服務無法編輯該文件),以關鍵字“根據需要增加一些要進行壓縮的文件后綴,其中HcFileExtensions是靜態文件的擴展名,增加js和css等;HcScriptFileExtensions為動態文件的擴展名,增加aspx,ashx等;HcDynamicCompressionLevel改成9,(0-10,9是性價比最高的一個)。

5、啟動IIS服務,就已經成功啟用gzip壓縮了。

如何優化網站服務器提升網站訪問速度?

您好,我是仙人掌熱點。 網站運營的任何時候,網站訪問速度都是至關重要的部分,它是網站友好體驗中最基本的一項,如果訪問體驗都令人不滿意,那么后期所做的營銷推廣模式都有可能徒勞無功,因為網絡中客戶的選擇成本很低,加上普遍客戶的耐心都不高,頁面訪問超過6秒客戶就會選擇離開,這對于一些流量本來就不高的企業網站來說無疑是雪上加霜。 網站訪問速度既然如此重要,今天筆者也要跟大家分享幾個關于提升速度體驗的方法,雖然網上有很多類似的文章和觀點,但是大多數都是網站內部去解析,今天筆者要從服務器方面聊聊如何優化網站服務器提升網站訪問速度。

大多數網站運營優化人員都知道通過頁面優化來提升訪問速度,當你已經完成了優化操作之后,發現沒有什么大的改善,此時你就應該去思考是不是其它因素導致訪問速度緩慢。 比如:長期使用的服務器性能下降所致,為了保障業務不受影響,你或許應該對正在使用的服務器進行升級和優化了。

一、升級正在使用中的服務器

進行服務器升級工作之前,要考慮多方面的問題,是升級已有的服務器還是購置新的服務器設備須根據實際情況抉擇。 首先來說升級現有的服務器設備,一般來說網站運營到后期隨著業務不斷增加,多平臺應用的開發對于服務器性能的要求也逐步提升,長而久之服務器遇到性能瓶頸也是情理之中的事情,對于這種情況,我們可以通過升級服務器(例如增加硬件設備或網絡帶寬)等相關配置來滿足不斷擴大的業務需求,那么服務器性能瓶頸問題就可以得到解決。 再來說說購置新的服務器設備,也許有人會問為什么要重新購置呢,升級已有的服務器不可以嗎?這里筆者也當然想替大家節省一筆開支,但是根本問題在于大多數企業選購服務器時并不合理,加上網站建設之初為節約成本而選擇了擴展性較差的服務器,導致即便是我們對現有的服務器進行升級,其性能提升的強度依然不夠。 此時,就需要重新購置服務器配合了,對于服務器的購置也有很多技巧,這里簡單的做個推薦,如果用戶群體是國內的建議選擇國內知名的服務器供應商,若客戶群體是遍布全球,大家可以選擇香港服務器或美國服務器,除此之外,更重要的是要根據自身行業的特性做出合理的選擇。

二、優化正在使用的服務器

不管是完成升級后的服務器,還是新購置的服務器,我們都要對其進行優化,從而提升服務器的性能以及利用率。下面從四個方面跟大家談談如何優化服務器:

要點一:盡可能的減少HTTP請求數

從客戶訪問網站頁面到整個頁面內容完全展現出來,這其中要花費較多的時間來下載各種Scripts、CSS樣式表、Flash以及圖片,而每一類下載都相當于一次HTTP請求,這樣的請求越多網站被完全加載出來所花的時間會越長,意味著客戶端的訪問會很慢,那么此時就需要盡可能的減少HTTP請求數,通常我們可以直接把css和js寫入到頁面中,避免了外部的調用;或者我們可以把CSS文件和JS文件分來,在后臺再進行合并,這樣客戶端瀏覽器相當于一次請求。 總而言之,減少HTTP請求數我們可以通過減少外部各類文件的數量調用次數來達到其目的。

要點二:降低DNS查詢時間

眾所周知網絡服務器端的域名和IP地址是相互對應的,當客戶端發出請求時,計算機還需要通過域名和IP地址的相互轉換來判斷,而這個轉換工作便是域名解析DNS,通常DNS的查詢需要10~20毫秒時間,客戶端瀏覽器也只會等待DNS查詢結束之后才會加載此域名下的內容。 因此,我們要加快頁面的訪問速度,就可以從降低DNS查詢時間方面去做改善。

要點三:啟用服務器Gzip壓縮功能

對于大中型網站來說,頁面的內容多且比較多樣化,單個頁面的大小可能是幾百K以上了,客戶端訪問的時候下載會比較慢,此時我們可以采用服務器Gzip頁面壓縮功能,可以將一個大小為100K的頁面文件壓縮成25K以下,這樣就可以減少網絡傳輸的數量從而提高客戶端訪問速度。 一般服務器都是可以使用Gzip壓縮功能的,并且能夠針對JS文件、CSS文件和Html進行壓縮,多方面去進行優化網站訪問速度。

要點四:推薦大中型網站使用CDN加速工具

CDN加速是目前大型網站普遍使用的頁面加速方式,它對于網站優化幾乎沒有影響的,基本原理是將網站鏡像備份到很多服務器節點上,使服務器節點周圍的用戶訪問速度更快,從而提升客戶端高速訪問網站的體驗;但是并不是所有的網站都適合使用CDN加速,一般對于小規模站點個人站的話,就不需要使用CDN加速,畢竟從長期來看這可是一筆不小的開支;建議圖片站以及多媒體站點可使用CDN加速。

至此,以上為大家講到了可以通過優化和升級服務器兩個方面提升網站訪問速度,如果你的網站目前的訪問體驗不佳,可以嘗試進行以上操作,相信能夠幫助大家改善此類問題。

微信視頻總是解析異常怎么解決?

我也遇到了類似的問題,服務器上數據開啟了Gzip壓縮,微信瀏覽器解析視頻數據時候沒有按照Gzip壓縮后的數據解析。這種問題只出現在Android版本的微信上

其實客戶端在向服務器端發送請求的時候,服務端就已經拿到客戶端支持哪種壓縮格式,服務器估計是判斷到微信客戶端支持Gzip壓縮數據,就給客戶端傳輸了Gzip格式的數據,誰知微信客戶端不認

如何啟用iis的gzip壓縮功能?

IIS6已經內建了Gzip壓縮的支持,可惜,沒有設置更好的管理界面。 所以要打開這個選項,還要費些功夫。

1、如果你需要壓縮靜態文件(HTML),需要在硬盤上建一個目錄,并給它“IUSR_機器名”這個用戶的寫權限。 如果壓縮動態文件(PHP,asp,aspx,ashx)就不需要了,因為它的頁面是每次都動態生成的,壓縮完就放棄。

2、在IIS管理器中,“網站”節點上面(不是某個具體的站點,而是整個網站)右鍵-屬性,選擇“服務”標簽,選上啟用動態內容壓縮,靜態內容壓縮。

3、在IIS管理器左側選中“WEB服務器擴展”,新建一個服務器擴展。 名字任意,比如gzip,文件的路徑是,并啟用這個擴展。

4、停止IIS服務,打開(不停止IIS服務無法編輯該文件),以關鍵字“根據需要增加一些要進行壓縮的文件后綴,其中HcFileExtensions是靜態文件的擴展名,增加js和css等;HcScriptFileExtensions為動態文件的擴展名,增加aspx,ashx等;HcDynamicCompressionLevel改成9,(0-10,9是性價比最高的一個)。

5、啟動IIS服務,就已經成功啟用gzip壓縮了。



相關標簽: 提升性能、 Accept、 通過Encoding、 請求壓縮提升性能的手段、 web主導、

上一篇:掌控AcceptEncoding提高web應用程序的響應

下一篇:深入了解AcceptEncodingHTTP頭部優化web傳

內容聲明:

1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://m.sycxjdsbhs.com/article/743f4c40ec908dad9cad.html,復制請保留版權鏈接!


溫馨小提示:在您的網站做上本站友情鏈接,訪問一次即可自動收錄并自動排在本站第一位!
隨機文章
工作場所的多元化:釋放創新和創造力的力量 (工作場所的多樣性)

工作場所的多元化:釋放創新和創造力的力量 (工作場所的多樣性)

多元化的好處工作場所的多樣化是指擁有不同背景、經驗和觀點的人員,它為組織帶來了一系列好處,包括,增強創新和創造力,來自不同背景和經歷的人員帶來不同的視角和解決方案,培養創新環境,更好的決策制定,多元化的團隊可以從更廣泛的觀點中受益,從而做出更明智的決策,提高員工敬業度,當員工感到自己被接納和重視時,他們的敬業度和生產力就會提高,市場滲...。

技術教程 2024-09-26 23:22:36

提供了分詞后處理工具,使分詞結果更加準確和有用。(分詞后面加什么詞)

提供了分詞后處理工具,使分詞結果更加準確和有用。(分詞后面加什么詞)

分詞是自然語言處理,NLP,中一項基本任務,它將文本分解為單獨的單詞或詞組,稱為詞素,分詞的結果對于許多NLP任務至關重要,例如信息檢索、情感分析和機器翻譯,原始分詞的結果并不總是準確或有用的,為了解決這個問題,已經開發了各種分詞后處理技術,這些技術可以提高分詞結果的準確性,使其更適合特定應用,分詞后處理技術詞性標注,將詞素標記為名詞...。

本站公告 2024-09-23 23:40:32

AJAX在線視頻教程:隨時隨地掌握異步通信 (ajax在線測試工具)

AJAX在線視頻教程:隨時隨地掌握異步通信 (ajax在線測試工具)

歡迎來到AJAX在線視頻教程,在這里,您將學習AJAX的基本原理,并了解如何使用它來構建更具交互性和響應性的Web應用程序,什么是AJAX,AJAX,異步JavaScript和XML,是一種Web開發技術,允許Web應用程序在不重新加載整個頁面的情況下與服務器通信,這使Web應用程序能夠更快速、更響應地對用戶交互做出響應,并創建更流暢...。

本站公告 2024-09-23 16:38:43

高效排序算法:提升數據處理速度和準確性的關鍵 (高效排序算法有哪些)

高效排序算法:提升數據處理速度和準確性的關鍵 (高效排序算法有哪些)

在現代數據驅動的世界中,處理海量數據已成為一項至關重要的任務,而排序是數據處理中一項基本且經常執行的操作,它可以將數據按特定順序組織起來,以便于進一步分析和處理,隨著數據量的不斷增長,傳統排序算法的效率已經遠遠不夠,因此,開發更高效的排序算法變得至關重要,以便在更短的時間內處理更大的數據集,同時保持準確性,本文將深入探討高效排序算法,...。

互聯網資訊 2024-09-17 06:19:30

防止討厭的行為:e.preventDefault() 為您提供瀏覽器控制權 (防止討厭的行為叫什么)

防止討厭的行為:e.preventDefault() 為您提供瀏覽器控制權 (防止討厭的行為叫什么)

當您在Web上瀏覽時,您可能會遇到一些討厭的行為,例如,鏈接在新標簽中打開、表單自動提交或圖像在您單擊后放大,這些行為可能會令人沮喪,尤其是當您試圖專注于任務時,幸運的是,有一種方法可以防止這些討厭的行為,e.preventDefault,這個方法可以阻止瀏覽器執行其默認行為,讓您控制頁面的行為,使用e.preventDefaul...。

本站公告 2024-09-16 12:05:37

Java 編程的奧秘:探索語言背后的機制 (java編程入門到精通)

Java 編程的奧秘:探索語言背后的機制 (java編程入門到精通)

引言Java是世界上最流行的編程語言之一,以其強大的功能、面向對象的設計和跨平臺兼容性而聞名,在Java的表面之下隱藏著復雜而迷人的機制,只有真正理解這些機制,你才能充分掌握這門語言,Java虛擬機,JVM,JVM是Java編程的核心組件,負責加載和執行Java字節碼,它是高度可移植的,允許Java程序在任何安裝了JVM的平臺上運行,...。

本站公告 2024-09-11 12:47:09

編程中國:中國技術革命的催化劑 (編程中國app)

編程中國:中國技術革命的催化劑 (編程中國app)

前言隨著中國技術行業的蓬勃發展,編程已成為推動創新和增長的關鍵力量,編程中國作為領先的中文編程學習平臺,扮演著至關重要的角色,成為中國技術革命的催化劑,編程中國簡介編程中國成立于2013年,是一個面向中國學習者的在線編程學習平臺,它提供豐富的編程課程、實操練習和社區支持,致力于讓每個人都能輕松學習編程,編程語言覆蓋廣泛編程中國涵蓋了多...。

技術教程 2024-09-09 10:08:00

滾動文字代碼入門:初學者指南,打造動態文本效果 (滾動文字代碼HTML)

滾動文字代碼入門:初學者指南,打造動態文本效果 (滾動文字代碼HTML)

什么是滾動文字代碼,滾動文字代碼是一種計算機代碼,它能讓文本以一定的速度和方向在屏幕上滾動,它常用于制作動態的文本效果,例如網站的標題、廣告和動態看板,如何創建滾動文字代碼使用HTML最簡單的方法是使用HTML的<,marquee>,元素,它允許你創建水平或垂直滾動的文本,以下是語法,<,marquee>,文本內容&l...。

技術教程 2024-09-08 15:46:39

揭開 Java 編程的秘密:一本寶貴的電子書,解鎖編程潛能 (揭開童年父母經典騙術的真相)

揭開 Java 編程的秘密:一本寶貴的電子書,解鎖編程潛能 (揭開童年父母經典騙術的真相)

一本寶貴的電子書,解鎖編程潛能歡迎來到Java編程的神奇世界!在這本電子書中,我們將踏上激動人心的旅程,揭開Java編程的秘密,從基礎語法到高級概念,我們將覆蓋所有內容,讓你成為Java編程高手,適合以下人群,希望從頭開始學習Java的初學者有編程基礎,但希望提高Java技能的人希望撰寫可擴展且高效Java代碼的開發人員內容大綱本電子...。

技術教程 2024-09-08 07:49:32

釋放您的電影制作潛力:利用全功能電影網站源碼 (釋放您的電影在線觀看)

釋放您的電影制作潛力:利用全功能電影網站源碼 (釋放您的電影在線觀看)

準備好將您的電影制作夢想變為現實了嗎,借助功能齊全的電影網站源碼,您可以輕松地創建自己的網站,在線展示和分享您的作品,并與更廣泛的受眾建立聯系,功能豐富的電影網站我們的電影網站源碼包含一系列強大功能,可讓您創建功能完善的網站,滿足您所有的電影制作需求,影片上傳,輕松上傳您的電影并將其存儲在安全的服務器上,視頻播放,使用我們先進...。

互聯網資訊 2024-09-07 10:21:41

網址整理專欄:讓雜亂的網絡世界告別混亂 (網址整理專欄怎么做)

網址整理專欄:讓雜亂的網絡世界告別混亂 (網址整理專欄怎么做)

在浩瀚的網絡世界中,我們每天都會遇到無數的網址,這些網址可能來自社交媒體、電子郵件、新聞網站和各種在線資源,隨著時間的推移,這些網址會迅速堆積,變成一個雜亂無序的數字垃圾場,網址整理專欄的誕生就是為了解決這個問題,通過創建一個專門的地方來存放和組織你的網址,你可以告別網絡混亂,輕松管理你的在線生活,創建網址整理專欄創建網址整理專欄非常...。

最新資訊 2024-09-06 02:24:52

企業做網站建設時該如何選擇網絡公司 (企業做網站建議怎么寫)

企業做網站建設時該如何選擇網絡公司 (企業做網站建議怎么寫)

對于怎么選擇網站開發公司每個人心理都有一把稱,都會根據自己的主觀意識看待問題,但是往往對于不是熟悉的事物總會出現偏差,那么怎么判斷一個網絡公司的好壞呢,首先是看他的制作團隊人員配備,做網站要有前端設計人員和后端開發人員,更正規些的還會配有網站策劃師,像我們深圳博納網絡信息技術有限公司一般的網站建設、網站開發、網站設計app開發、小程序...。

技術教程 2024-09-02 00:09:22

Copyright ? 2025 聚集網 All Rights Reserved
此內容系本站根據來路自動抓取的結果,不代表本站贊成被顯示網站的內容或立場。
本頁閱讀量次 | 本站總訪問次 | 本站總訪客人 | 今日總訪問次 | 今日總訪客人 | 昨日總訪問次 | 昨日總訪客人 |
技術支持:聚集網

国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门
xxxxxxxxx欧美| 成人免费淫片aa视频免费| 日韩中文在线不卡| 亚洲欧洲在线视频| 中文字幕在线视频日韩| 日本三级久久久| 欧美激情xxxxx| 亚洲精品456在线播放狼人| 日韩中文字幕网址| 亚洲精品久久7777777| 日韩禁在线播放| 国外视频精品毛片| 性色av一区二区咪爱| 北条麻妃99精品青青久久| 中文字幕亚洲欧美日韩2019| 国产日韩欧美在线看| 欧美成人激情视频免费观看| 日韩在线观看免费| 在线看欧美日韩| 97人洗澡人人免费公开视频碰碰碰| 欧美三级欧美成人高清www| www.久久久久| 亚洲а∨天堂久久精品9966| 亚洲国产日韩精品在线| 在线看欧美日韩| 2020欧美日韩在线视频| 亚洲第一男人av| 国产美女精品免费电影| 国产精品网站大全| 色无极影院亚洲| 日韩在线视频线视频免费网站| 日本成人在线视频网址| 77777亚洲午夜久久多人| 久久99热这里只有精品国产| 欧美亚洲国产另类| 亚洲视频电影图片偷拍一区| 亚洲理论在线a中文字幕| 97国产一区二区精品久久呦| 国产精品夜间视频香蕉| 亚洲女人天堂视频| 亚洲色图在线观看| 成人自拍性视频| 黄色成人av在线| 国产精品va在线播放| 久久久人成影片一区二区三区观看| 国产精品va在线播放| 美女视频黄免费的亚洲男人天堂| 日韩视频在线一区| www.久久撸.com| 欧美日在线观看| 国产视频欧美视频| 亚洲最大的av网站| 亚洲欧美激情另类校园| 88xx成人精品| 久久精品电影网站| 亚洲成人1234| 欧美成人在线网站| 国产精国产精品| 久久久久久亚洲| 成人免费在线视频网站| 久久精品成人欧美大片古装| 亚洲成人av在线| 欧美日韩国产页| 欧美成人h版在线观看| 亚洲精品小视频| 热久久这里只有| 国产欧美日韩精品丝袜高跟鞋| 97国产精品视频人人做人人爱| 亚洲色图美腿丝袜| 欧美日韩免费网站| 欧美老少配视频| 91在线视频成人| www.xxxx欧美| 亚洲国产高清高潮精品美女| 成人激情视频小说免费下载| 97久久精品在线| 亚洲影院在线看| 国产精品久在线观看| 久久精品2019中文字幕| 中文字幕少妇一区二区三区| 亚洲欧美成人一区二区在线电影| 国产欧美久久一区二区| 国产精品久久久久久久久久99| 国产不卡精品视男人的天堂| 日韩电影大片中文字幕| 中文字幕久精品免费视频| 亚洲r级在线观看| 伦伦影院午夜日韩欧美限制| 69av在线播放| 精品国产户外野外| 欧美成人中文字幕在线| 日韩欧美在线第一页| 日韩高清a**址| 久久久久久久久久久网站| 青青在线视频一区二区三区| 成人福利免费观看| 激情成人在线视频| 欧美激情免费观看| 在线观看日韩专区| 91在线高清免费观看| 高潮白浆女日韩av免费看| 国产日韩欧美视频在线| 亚洲www在线观看| 1769国内精品视频在线播放| 欧美另类在线观看| 日韩成人免费视频| 国产精品久久久久免费a∨大胸| 欧美福利视频网站| 色先锋久久影院av| 亚洲欧洲偷拍精品| 68精品久久久久久欧美| 黑人狂躁日本妞一区二区三区| 欧美日韩在线看| 国产一区二区三区精品久久久| 国产视频丨精品|在线观看| 欧美人交a欧美精品| 亚洲国产又黄又爽女人高潮的| 日韩美女在线观看| 亚洲欧美在线播放| 国产精品劲爆视频| 91免费在线视频| 欧美三级欧美成人高清www| 91九色综合久久| 国产精品爽黄69天堂a| 韩国v欧美v日本v亚洲| 国产精品成人免费视频| 国产精品91久久久久久| 欧亚精品在线观看| 久久久久一本一区二区青青蜜月| 欧美第一黄色网| 亚洲欧美日韩中文在线制服| 91精品国产乱码久久久久久蜜臀| 亚洲人成免费电影| 疯狂做受xxxx高潮欧美日本| 国产精品成人播放| 欧美激情一区二区三区高清视频| 国产一区二区三区免费视频| 久99九色视频在线观看| 久久久国产视频| 美乳少妇欧美精品| 午夜精品久久久久久久99热| 亚洲视频日韩精品| 欧美性受xxxx白人性爽| 69视频在线免费观看| 久久久久久91| 久久久久日韩精品久久久男男| 久久色在线播放| 国产精品电影久久久久电影网| 亚洲精品久久久久久久久久久久| 欧美性jizz18性欧美| 91av在线精品| 欧美日韩亚洲一区二区| 日韩精品在线看| 亚洲欧洲自拍偷拍| 亚洲精品99久久久久| 国产精品久久久久免费a∨| 成人激情综合网| 狠狠色狠狠色综合日日小说| 国产精品亚洲欧美导航| 欧美日韩美女在线观看| 国产精品久久久久久久久久久久久久| 国产激情久久久| 日韩欧美高清视频| 国产精品黄色影片导航在线观看|