A. 怎麼在java web開發中進行流量控制
不太明白你問的問題。你說的是並發?,不過不是我估計沒有人能回答你的問題。
B. 這兩個有什麼區別
GPRS是上網方式,wap是網站的形式,
cmnet和cmwap是移動的上網類型
3gnet和3gwap聯通的上網類型
如果你希望對CMWAP和CMNET了解有什麼不同,那麼就讀完全篇吧。
(1) 為什麼會有兩個接入點?
在網上查閱大量資料後並經過反復的嘗試與探索後,我大致對中國移動提供的這兩種接入方式有了初步了解。
在國際上,通常只有一種GPRS接入方式,為什麼在中國會有CMWAP和CMNET兩兄弟呢?(彩信之所以單獨配置接入點是因為彩信服務需要連接專用的伺服器,在這里不作探討。)
其實,CMWAP 和 CMNET 只是中國移動人為劃分的兩個GPRS接入方式。前者是為手機WAP上網而設立的,後者則主要是為PC、筆記本電腦、PDA等利用GPRS上網服務。它們在實現方式上並沒有任何差別,但因為定位不同,所以和CMNET相比,CMWAP便有了部分限制,資費上也存在差別。
(2) 什麼是WAP?
WAP只是一種GPRS應用模式,它與GRPS的接入方式是無關的。WAP應用採用的實現方式是「終端+WAP網關+WAP伺服器」的模式,不同於一般Internet的「終端+伺服器」的工作模式。主要的目的是通過WAP網關完成WAP-WEB的協議轉換以達到節省網路流量和兼容現有WEB應用的目的。
WAP網關從技術的角度講,只是一個提供代理服務的主機,它不一定由網路運營商提供。但據我所知,中國移動GPRS網路目前只有唯一的一個WAP網關:10.0.0.172,有中國移動提供,用於WAP瀏覽(HTTP)服務。有一點需要注意,WAP網關和一般意義上的區域網網關是有差別的,標準的WAP網關僅僅實現了HTTP代理的功能,並未完成路由、NAT等區域網網關的功能。這就決定了它在應用上所受到的限制。
(3) 中國移動對CMWAP的限制
為了從應用中區別兩者的定位,中國移動對CMWAP作了一定的限制,主要表現在CMWAP接入時只能訪問GPRS網路內的IP(10.*.*.*),而無法通過路由訪問Internet。(少數地區的移動網路可能不存在這一限制。)我們用CMWAP瀏覽Internet上的網頁就是通過WAP網關協議或它提供的HTTP代理服務實現的。
說到這里,就讓我自然而然的聯想到我們公司的網路,相信不少工作的朋友都有類似的體會。公司的網路在網關上不提供路由和NAT,僅僅提供一個可以訪問外網的HTTP代理。這樣,我們就無法直接使用QQ、MSN等非HTTP協議的應用軟體了(好在它們還提供的有HTTP代理的連接方式)。CMWAP也正是
(4) 適用范圍
適用范圍才是大家最關心的問題。CMNET擁有完全的Internet訪問權,這里就不多說了,主要讓我們來看看CMWAP。因為有了上面提到的限制,CMWAP的適用范圍就要看WAP網關所提供的支持了。目前,中國移動的WAP網關對外只提供HTTP代理協議(80和8080埠)和WAP網關協議(9201埠)。(據有的網友提到1080埠也是開放的,但無法連接。這也許是移動內部使用的一個Socks後門吧^_^)。
因此,只有滿足以下兩個條件的應用才能在中國移動的CMWAP接入方式下正常工作:
1. 應用程序的網路請求基於HTTP協議。
2. 應用程序支持HTTP代理協議或WAP網關協議。
如何辨別一個應用程序的網路請求是否基於HTTP協議?
這個問題還真不好回答,要完全做到這一點需要通過攔截應用程序的通信數據包進行分析。這里提供幾個簡單的方法給廣大菜鳥朋友:從表現上看,如果它的網路請求是網址(URL)的形式,那麼通常是基於HTTP協議的,如Web瀏覽器;如果它連接的伺服器埠是80,那麼它可能是基於HTTP協議的。如果確實無法准確判斷,那麼請直接看下一個條件。(滿足第二個條件的應用一定是基於HTTP協議的)
如何區別一個應用程序支持HTTP代理協議還是WAP網關協議呢?
首先看它的設置中有沒有代理伺服器的選項(通常在S60上未特別說明的代理都是特指HTTP代理),如果有則表示它支持HTTP代理協議。如果沒有,則需要按照以下步驟測試:
在GPRS接入點設置的高級設置里去掉代理伺服器的設置項:Server Address 和 Server Port(,如果應用程序可以正常工作,那麼它是基於WAP網關協議,如Java程序、S60內置的瀏覽器。如果在此狀態下不能正常工作,而恢復GPRS接入點高級設置中的代理伺服器設置後能夠正常工作,則應用程序支持HTTP代理協議(代理設置從系統中讀取)。如果仍不能正常工作,那麼這個應用程序一般來說是不支持HTTP代理協議或WAP網關協議的。
這里需要特別說明的是JavaQQ,它有Socket和HTTP兩種版本。現在網上流傳的可用於CMWAP的JavaQQ就是基於HTTP協議的。就拿那個JavaQQ 2004來說,啟動畫面中就明確的寫著「KJava QQ HTTP」。而SIS版的QQ和AgileMessenger(S60的MSN客戶端)因為是採用的普通的Socket連接方式,因此無法用於CMWAP。
------------------------------------------------------------------------------------
GPRS
通用分組無線業務,它是利用「包交換」概念所發展出得一套無線數據傳輸方式。GSM系統在數據傳輸時採用與語音相同的電路交換方式,需要預先建立從發送端到接收端的持續連接,在通信過程中無論有無數據傳出,始終獨占著信道。而GPRS的分組交換則是把數據分成若干小的數據包,通過不同路徑同時或先後傳輸。GPRS並不獨占固定的電路,而是即可以一個用戶佔用多個信道,又可以多個用戶佔用一個信道。因此,GPRS可以在不浪費網路資源的情況下實現「時刻在線」,相較與原來的GSM的撥號方式,上網方便了許多,更重要的是GPRS可以實現高速數據傳輸。
GPRS屬於2.5G技術,因此,一些人認為它是GSM網路的替代。其實,GPRS是GSM在數據方面的補充,它通過增加一些硬體設備和軟體升級,在原有GSM網上疊加了一個新的數據網路。GPRS也不替代GSM原有的數據功能。對於多數使用GPRS的手機用戶來說,既可以使用GPRS上網,也可以用GSM原來的撥號方式上網。還有些人認為GPRS是WAP的替代,好像有了GPRS,WAP就會消失。其實,GPRS和WAP屬於兩種不同的范疇,WAP是移動互聯網內容和服務的一種協議,而GPRS是無線數據的一種傳輸方式。我們可以把GPRS想像成一條快速公路,WAP則是公路上行駛的車輛,通過這條公路,我們可以快速便捷的享受各種內容和服務。GPRS的開通,對WAP的發展是一種促進。使用GPRS終端,可以快捷、方便的享受到各種WAP服務。
GPRS能夠提供的業務有移動商務、移動信息服務、移動互聯網業務、虛擬專業網業務、定位服務、多媒體業務等,象網上聊天、移動炒股、遠程監控、遠程計數等消流量高頻率傳輸的數據業務特別適合GPRS的特點。
我們常常說到GPRS class 10,一些朋友就問啦:GPRS class 10是什麼啊?其實,不管是GPRS class 10還是GPRS class 8都是指GPRS終端能使用的信道數量,象手機的GPRS功能多為 class 8、class 10、 class 12的,它們並不是指有8、10、12個信道可以供你使用,它們的總信道都是5個,一些人又鬧不明白了,那還有什麼區分啊?答案--其實它們的區分主要在於最大可以使用的上行信道,它們的下行信道最大都是可以使用4個信道的;我舉些例子來說吧,象我們OT735的是GPRS class 10,它最高支持2個上行信道,它可以同時使用4個下行信道和1個上行信道,又或者可以同時使用3個上行信道和2個下行信道;而GPRS class 12可以支持4個上行信道,不但可以同時使用4個下行信道和1個上行信道,反之也可以同時使用1個下行信道和4個上行信道;GPRS class 8隻支持1個上行信道,它只能同時使用4個(或以下)下行信道和1個上行信道。
C. 賺錢最快的方法。
掙錢最快的辦法有:上班求職、自己創業、自媒體、做網購,詳細介紹如下:
1、上班求職,找一份適合自己的工作,踏踏實實地去工作,每天用心去完成公司指派的任務,獲得工資收入,公司提成,公司獎勵來賺錢。通過努力提升自己的薪酬水平。
2、自己創業,創業成功後賺錢也容易,也來得快。前提是能夠成功,而創業的過程是漫長而又艱難的。需要付出百倍的努力才可能成功,同時還需要面對失敗的打擊。所以,正確看待創業,不要盲目跟風。
3、自媒體是當前賺錢最快的行業之一,如百家號、頭條號只要會寫文章、製作視頻即可獲得廣告收益。
4、可以做網購,網購是人們消費的主戰場,如淘寶、京東、拼多多,面對如此大的市場,只要掌握好的貨源,肯定會有賺錢的機會。
注意事項:
1、創業、經商賣得就是產品或服務,如果口才不好,產品再好,別人也難以了解和接受,所以說要努力提高自己的口才和語言表達能力。
2、堅持不懈地加強學習,不一定非要學商業專業、營銷專業,平時多看商業方面、管理方面、投資方面、社交方面的書籍雜志。
D. java web開發緩存方案,ehcache和redis哪個更好
這里就不再逐個討論了,我將會在一個實際應用程序開發場景中介紹其中的一些。使用Redis作為一個緩存解決方案我之前提到過,Redis可輕易地用作一個緩存解決方案,碰巧我現在正好需要這樣一個!在該應用程序示例中,我將Redis集成到我基於定位的移動Web服務中,稱之為Magnus。如果您沒有關注本系列,那麼我會先使用Play框架實現Magnus,從那時起我就已經在各種實現中開發和重構它了。Magnus是一個簡單服務,可以通過HTTPPUT請求使用JSON文檔。這些文檔描述了特定帳號的位置,表示持有移動設備的人。現在,我想要將緩存集成到Magnus,也就是說我想要通過將不常更改的數據存儲在內存中以減少I/O流量。Magnus緩存!在清單5中的第一步中,可以通過get調用了解新引入的帳戶名稱(一個鍵)是否為REdis中的一個鍵。get調用可以將帳戶ID作為一個值返回,或者將返回null。如果返回一個值,我將用其作為我的acctId變數。如果返回的是null(表明該帳戶名稱不是Redis中一個鍵),那麼我將在MongoDB查找該帳戶值,並通過set命令將其添加到Redis。這里的優勢是速度:接下來,被請求的帳戶將提交一個位置,這樣我就能夠從Redis中獲取其ID(作為內存緩存),而不是轉到MongoDB並帶來額外讀取I/O成本。清單5.使用Redis作為內存緩存"/location/:account"{put{defjacksonMapper=newObjectMapper()defjson=jacksonMapper.readValue(request.contentText,Map.class)defformatter=newSimpleDateFormat("dd-MM-yyyyHH:mm")defdt=formatter.parse(json['timestamp'])defres=[:]try{defjedis=pool.getResource()defacctId=jedis.get(request.parameters['account'])if(!acctId){defacct=Account.findByName(request.parameters['account'])jedis.set(request.parameters['account'],acct.id.toString())acctId=acct.id}pool.returnResource(jedis)newLocation(acctId.toString(),dt,json['latitude'].doubleValue(),json['longitude'].doubleValue()).save()res['status']='success'}catch(exp){res['status']="error${exp.message}"}response.json=jacksonMapper.writeValueAsString(res)}}注意,清單5中的aMagnus實現(使用Groovy編寫)仍然使用一個NoSQL實現作為數據模型存儲;它僅僅使用Redis作為一個緩存實現用於查詢數據。因為我的主要帳戶數據位於MongoDB中(事實上,它駐留在MongoHQ.com中),而我的Redis數據存儲在本地運行。在隨後查找帳戶ID時,Magnus速度將顯著提升。可是等等!我為什麼同時需要MongoDB和Redis?難道我就不能單獨使用一個嗎?ORM的Node.js很多項目均提供ORM類映射用於Redis,其中包括一個極富影響力的基於Ruby的備用方案,稱為Ohm。我檢查了該項目基於Java的派生產品(稱為JOhm),但是最終決定使用一個為Node編寫的派生產品。Ohm及其派生項目的妙處在於他們允許您將一個對象模型映射到一個基於Redis的數據結構。因此,您的模型對象是持久性的,同時在大多數情況下其讀取速度也非常之快。有了Nohm,我便能夠使用JavaScript快速重寫我的Magnus應用程序並能立即持久化Location對象。在清單6中,我已定義了一個Location模型,該模型包括3個屬性。(注意,我通過將timestamp設置為一個字元串而不是一個真實的時間戳,從而簡化我的示例。)清單6.Node.js中的RedisORMvarLocation=nohm.model('Location',{properties:{latitude:{type:'float',unique:false,validations:[['notEmpty']]},longitude:{type:'float',unique:false,validations:[['notEmpty']]},timestamp:{type:'string',unique:false,validations:[['notEmpty']]}}});Node的Express框架使NohmLocation對象的使用變得十分簡單。在我的應用程序PUT實現中,我可以捕獲正在進入的JSON值,並通過Nohm的p調用將其導入到一個Location實例。然後我再檢查該示例是否有效,如果有效,我會對其進行持久化。清單7.在Node的Express.js中使用Nohmapp.put('/',function(req,res){res.contentType('json');varlocation=newLocation;location.p("timestamp",req.body.timestamp);location.p("latitude",req.body.latitude);location.p("longitude",req.body.longitude);if(location.valid()){location.save(function(err){if(!err){res.send(JSON.stringify({status:"success"}));}else{res.send(JSON.stringify({status:location.errors}));}});}else{res.send(JSON.stringify({status:location.errors}));}});正如清單7所示,可以輕易地將Redis構建成一個極其快速的內存數據存儲。在一些案例中,它甚至是一個比memcached更好的緩存!結束語Redis對於許多數據存儲場景非常有用,因為它可以將數據持久化到磁碟(還因為它支持一個豐富的數據集),有時候,它是memcached的有力競爭對手。有些情況下,對於您的領域也是很有意義的,您可以使用Redis作為數據模型和隊列的一個備份存儲。Redis客戶端實現幾乎可被移植到任何編程語言中。Redis不是RDMBS的完全替代品,也不是一個重量級存儲,但是和MongoDB一樣擁有豐富的功能。然而,在很多情況下,它可與這些技術共存。
E. 計算機軟體專業畢業的學生,在畢業之後干什麼工作待遇比較好
計算機類專業畢業就業范圍很廣,技術好的可以去互聯網大廠,可以考事業單位或公務員,也可以去當教師,技術差一點的可以去一般的民營企業,是一個比較好就業的綠牌專業。計算機專業畢業的就業面還是挺廣的,所學具體專業不同,那就業方向肯定也不一樣,同時可以從事對口的的工作,也可以從事其他自己喜歡的行業。以下簡單概括一下:
總的來說,計算機專業畢業以後,不一定都是程序員,世上的路有千千萬萬條,至於怎麼走,就看你自己選擇哪一條了。
F. 昆明Java培訓:微服務:JavaEE的拯救者還是掘墓人
G. 塞班版UCWEB7.2比JAVA版UCWEB7.2費流量的問題!
UC那些都是一樣的,但可能他沒開預讀或者圖片,而你開了。一般來說都是一樣的
H. 在線等!! java spring 框架 如何計算http請求上行下行流量多少
http請求的上下行流量,包含消息頭 、消息體等,上行流量計算上行報文大小、下行流量計算下行報文大小。
但PHP、Node.js擴展方面短板太明顯,做小應用可以,大型應用就玩不轉了。
另外,JavaEE領域有太多優秀框架可以解決開發效率的問題,事實上借用Spring等框架,開發的效率絲毫不亞於PHP。
互聯網時代的Java開發者,很多都不是基於Servlet和EJB來開發Web應用,而且WebLogic、WebSphere也只會存在於大公司的存量系統中,互聯網公司的Java都是Tomcat的世界。
那麼,微服務能完全彌補JavaEE的短板嗎?對於JaveEE來說,微服務扮演的,究竟是拯救者還是掘墓人的角色?
那麼如何通過一門編程語言來賺錢呢?答案就是,使用這門語言構建復雜無比的伺服器,讓那些大公司支付一大筆費用來購買這些伺服器。
於是緊接著就出現了JavaEE規范、JSR規范,以及WebLogic、WebSphere等伺服器中間件。
在這些伺服器上面部署了大型的程序包,它們運行緩慢,消耗大量的內存。
基於這些容器的開發和調試對開發人員來說簡直就是噩夢,作為對他們的補償,他們從僱主那裡獲得了豐厚的報酬。
因為耗資巨大,幾乎找不到一家公司可以使用合理的費用長時間地支持Java。
如果你要用Java構建一個網站,你必須支付一大筆費用來運行這些伺服器,哪怕你只用到了Servlet容器。
在很長一段時間里,Java被用在企業和公司里,因為只有這些大公司能夠負擔得起數百萬美元的伺服器費用,並為那些企業級開發人員支付高額的薪水。
RodJohnson在2003年發布了Spring框架,Spring提供了IoC和對POJO的支持,幫助開發人員逃脫EJB魔掌。
開發效率因此得到大幅的提升,大量開發人員轉向Spring,把EJB丟在一邊。
應用伺服器開發商看到了這一點,他們在JavaEE5里提供了一些可以減輕開發人員負擔的特性。
可惜的是,Spring被一路追捧,人們幾乎把它跟JavaEE容器混為一談,它仍然運行在JavaEE的Servlet容器里,這些容器沿用的是十年前的設計,並沒有考慮到多核CPU和NIO。
在這期間,PHP奮起直追。
PHP使用更少的內存和資源,得到很多公司的支持。
一些CMS平台,比如WordPress、Drupal等都是基於PHP構建的,這些平台吸引了大批PHP開發人員。
不過,雖然PHP仍然是現今最流行的編程語言,但它也有自己的短板。
它運行速度不是很快,而且難以橫向擴展。
2009年,RyanDahl啟動了Node.js項目,它支持非同步非阻塞的、基於事件驅動的I/O。
如果伺服器的線程使用得當,Node.js可以極大地提升響應速度,單個伺服器的吞吐量可以媲美一個JavaEE伺服器集群。
Node.js是一個很好的作品,但它也有自己的局限性。
Node.js難以擴展,也難以與遺留的系統集成。
2014年,Undertow出現了,它是一個基於Java的非阻塞Web伺服器。
從#的測試結果來看,在一個價值8000美金的戴爾伺服器上,它可以每秒鍾處理幾百萬個請求,而谷歌需要使用一個集群才能處理一百萬個同樣的請求。
它是輕量級的,它的核心部分只需要1M內存,它還包含了一個內嵌的伺服器,這個伺服器使用不到4M的堆內存。
基於UndertowCore構建的LightJavaFramework是一個微服務容器,它支持設計驅動及生成代碼,並支持運行時安全和運行時驗證。
但現在這些伺服器賣不動了,因為JBoss迅速搶佔了市場份額,Oracle對JavaEE的支持正在走下坡路:#/story/16/07/02/1639241/oracle-may-have-stopped-funding-and-developing-java-ee隨著微服務越來越多地受到關注,這些應用伺服器很難有好的銷量,因為這些伺服器更適合用來部署單體應用。
有一個包含了數百個EJB的應用,為了在WebLogic上測試一行代碼改動,居然用了45分鍾時間。
JavaEE客戶
一個為WebSphere開發的應用無法部署在WebLogic上,所以你需要花更多的錢去升級伺服器,因為廠商可能不再支持舊版的伺服器,而這樣的更新會花費你數百萬美元。
於是一些聰明人不禁要問,為什麼我們要把應用部署在這些龐然大物上?為什麼我們要把應用打包成一個ear包或war包,而不是jar包?為什麼我們不能把大型的應用拆分成更小的塊,讓它們可以獨立部署和擴展?微服務
Wikipedia把微服務定義為「??一種軟體架構風格,復雜的應用由一些獨立的進程組成,這些進程使用與語言無關的API進行交互。
這些進程服務規模很小,高度離散,聚焦在一個很小的任務上,使用模塊化方式來構建系統」。
微服務架構讓構建應用變得更加容易,而且應用被拆分成單獨的服務,這些服務可以被任意組合。
每個服務可以被獨立部署,也可以被組合成一個應用。
這些服務還可能會被其他應用依賴。
它加快了服務的開發速度,因為只要定義好介面,服務可以並行開發。
微服務具備彈性和伸縮性。
微服務不只依賴單個伺服器和部署,它們可以被發布到多個機器上,或者多個數據中心及其它任何可用的區域。
如果一個服務失效,可以啟動另外一個。
因為整個應用被分解成了微服務(小型服務),可以很容易地對其中某些熱門的服務進行橫向擴展。
如果你曾經使用過COM、DCOM、CORBA、EJB、OSGi、J2EE、SOAP和SOA等,那麼你就會知道服務和組件並不是什麼新生事物。
企業在使用組件方面存在的一個最大問題是他們依賴大型的硬體伺服器,並在同一個伺服器上運行很多應用。
我們有EJB、WAR包和EAR包,以及各種組件包,因為伺服器資源太過昂貴,要盡可能地物盡其用。
不過從最近幾年的發展情況來看,之前的方式有些落伍。
操作系統伺服器一直在變化,虛擬資源可以被當成組件發布,比如EC2、OpenStack、Vagrant和Docker。
世界變了。
微服務架構看到了這種趨勢,硬體、雲技術、多核CPU和虛擬技術也在發展,所以我們要改變以前的開發方式。
在開始新項目的時候不要再使用EAR包或WAR包了。
現在我們可以在Docker里運行JVM,Docker只不過是一個進程,但它可以表現得像一個操作系統一樣。
Docker運行在雲端的操作系統上,而雲端的操作系統運行在虛擬機里,虛擬機運行在Linux伺服器上。
這些伺服器不是歸誰所有,而是被很多互不相識的人共享。
如果出現流量高峰怎麼辦?很簡單,使用更多的伺服器實例。
這就是為什麼要把Java微服務運行在一個單獨的進程里,而不是JavaEE容器或servlet容器。
微服務一般會提供基於HTTP/JSON的API端點。
這樣可以很容易地與其他服務(開源或閉源的)集成,只要這些服務提供了HTTP/JSON介面。
服務可以通過更有意義的方式被消費、被組合。
EC2、S3及其他來自Amazon(或其他公司)的服務就是最好的例子。
基礎設施會成為應用程序的一部分,而且它們是可編程的。
使用微服務架構的應用程序應該是模塊化、可編程和可組合的。
微服務之間可以相互替換。
應用程序的局部可以被重寫或改進,而不會影響到整個應用。
如果所有的組件都提供了可編程的API,那麼微服務之間的交互就會變得更簡單(永遠不要相信那些不能通過curl訪問的微服務)。
隨著微服務逐漸流行起來,很多廠商開始嘗試把他們的JavaEEWeb服務轉成微服務,這樣他們就可以繼續賣他們的過時產品,APIGateway就是這些廠商中的一個。
JasonBloomberg是Intellyx的主席,他在一篇文章里指出了傳統Web服務和微服務的區別,並對把傳統Web服務轉成微服務的趨勢提出了質疑:#/dangers-microservices-washing-get-value-strip-away-hype微服務不是企業服務匯流排里的Web服務,也不是傳統的面向服務架構,盡管它沿襲了SOA的一些基本概念。
從根本上來說,微服務跟SOA是不一樣的,因為整個環境已經發生了徹底的轉變。
微服務架構的環境是沒有邊界的:端到端,基於雲的應用程序運行在完全虛擬和容器化的基礎設施上。
容器把應用程序和服務組件化,DevOps為IT基礎設施提供框架,幫助自動化開發、部署和管理環境。
雖然容器對微服務來說不是必需的,不過微服務可以很容易地運行在容器里。
況且,把非微服務的代碼部署在容器里不是一個明智的選擇。
Docker和其他容器技術在某種程度上已經被視為微服務的最好伴侶。
容器是運行微服務的最小資源子集。
Docker簡化了微服務的開發,讓集成測試變得更簡單。
容器有助於微服務開發,但不是必需的。
Docker也可以被用來部署單體應用。
微服務與容器可以很好地相融並進,不過微服務包含的東西遠比容器多!結論
大公司把大型應用拆分成可以單獨部署的小型應用,這些小型應用被部署在雲端的容器里。
開源微服務框架LightJava為這些運行在容器里的微服務提供了很多特性,它支持設計驅動,開發者只需要把注意力專注在業務邏輯上,剩下的事情可以由框架和DevOps流程來處理。
那麼問題來了,你怎麼看?
然後結合並發量,就可以計算出上下行流量。
這個東西和框架關系不大,主要是了解http協議。