⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000096.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 5 页
字号:
server&nbsp;or&nbsp;even&nbsp;alter&nbsp;its&nbsp;existing&nbsp;functionality.&nbsp;Modules&nbsp;are&nbsp;usually&nbsp;&nbsp;<BR>compiled&nbsp;into&nbsp;the&nbsp;server.&nbsp;When&nbsp;building&nbsp;Apache&nbsp;you&nbsp;specify&nbsp;what&nbsp;modules&nbsp;&nbsp;<BR>you'd&nbsp;like&nbsp;to&nbsp;include&nbsp;and&nbsp;the&nbsp;module&nbsp;will&nbsp;be&nbsp;compiled&nbsp;into&nbsp;the&nbsp;Web&nbsp;server&nbsp;&nbsp;<BR>binary.&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Some&nbsp;people&nbsp;found&nbsp;this&nbsp;a&nbsp;bit&nbsp;cumbersome—having&nbsp;to&nbsp;recompile&nbsp;the&nbsp;entire&nbsp;&nbsp;<BR>server&nbsp;to&nbsp;add&nbsp;just&nbsp;one&nbsp;module;&nbsp;so&nbsp;in&nbsp;more&nbsp;recent&nbsp;versions&nbsp;of&nbsp;Apache&nbsp;&nbsp;<BR>(1.3.x)&nbsp;you&nbsp;can&nbsp;compile&nbsp;a&nbsp;module&nbsp;into&nbsp;a&nbsp;&quot;shared&nbsp;object&quot;&nbsp;(what&nbsp;Windows&nbsp;&nbsp;<BR>people&nbsp;know&nbsp;as&nbsp;a&nbsp;DLL)&nbsp;and&nbsp;load&nbsp;the&nbsp;module&nbsp;at&nbsp;runtime.&nbsp;Adding&nbsp;or&nbsp;removing&nbsp;a&nbsp;&nbsp;<BR>module&nbsp;can&nbsp;now&nbsp;be&nbsp;done&nbsp;by&nbsp;compiling&nbsp;the&nbsp;module&nbsp;and&nbsp;editing&nbsp;the&nbsp;&nbsp;<BR>configuration&nbsp;file.&nbsp;This&nbsp;functionality&nbsp;did&nbsp;exist&nbsp;previously,&nbsp;but&nbsp;in&nbsp;a&nbsp;more&nbsp;&nbsp;<BR>experimental&nbsp;form.&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In&nbsp;principle,&nbsp;the&nbsp;Apache&nbsp;Web&nbsp;server&nbsp;is&nbsp;not&nbsp;a&nbsp;complicated&nbsp;piece&nbsp;of&nbsp;&nbsp;<BR>software.&nbsp;Simply&nbsp;put,&nbsp;it&nbsp;consists&nbsp;of&nbsp;a&nbsp;core&nbsp;that&nbsp;takes&nbsp;care&nbsp;of&nbsp;all&nbsp;the&nbsp;&nbsp;<BR>low-level&nbsp;functions;&nbsp;a&nbsp;set&nbsp;of&nbsp;modules&nbsp;to&nbsp;provide&nbsp;whatever&nbsp;functionality&nbsp;&nbsp;<BR>you&nbsp;would&nbsp;want&nbsp;from&nbsp;your&nbsp;Web&nbsp;server;&nbsp;and&nbsp;handlers&nbsp;to&nbsp;call&nbsp;those&nbsp;modules.&nbsp;&nbsp;<BR>But&nbsp;how&nbsp;do&nbsp;the&nbsp;modules&nbsp;work?&nbsp;How&nbsp;does&nbsp;the&nbsp;Web&nbsp;server&nbsp;decide&nbsp;what&nbsp;to&nbsp;do&nbsp;and&nbsp;&nbsp;<BR>when?&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Phases:&nbsp;When&nbsp;Apache&nbsp;receives&nbsp;a&nbsp;request&nbsp;it&nbsp;will&nbsp;go&nbsp;through&nbsp;a&nbsp;number&nbsp;of&nbsp;&nbsp;<BR>&quot;phases&quot;&nbsp;in&nbsp;order&nbsp;to&nbsp;serve&nbsp;the&nbsp;request,&nbsp;as&nbsp;shown&nbsp;in&nbsp;Figure&nbsp;1.&nbsp;That&nbsp;&nbsp;<BR>simplifies&nbsp;the&nbsp;task&nbsp;of&nbsp;the&nbsp;developer&nbsp;who&nbsp;wants&nbsp;to&nbsp;extend&nbsp;some&nbsp;aspect&nbsp;of&nbsp;&nbsp;<BR>the&nbsp;server.&nbsp;For&nbsp;instance,&nbsp;if&nbsp;the&nbsp;developer&nbsp;wants&nbsp;to&nbsp;provide&nbsp;her&nbsp;own&nbsp;&nbsp;<BR>authentication&nbsp;modules&nbsp;she&nbsp;will&nbsp;only&nbsp;need&nbsp;to&nbsp;write&nbsp;the&nbsp;code&nbsp;needed&nbsp;to&nbsp;do&nbsp;&nbsp;<BR>the&nbsp;actual&nbsp;authentication.&nbsp;The&nbsp;developer&nbsp;will&nbsp;not&nbsp;have&nbsp;to&nbsp;bother&nbsp;with&nbsp;the&nbsp;&nbsp;<BR>other&nbsp;tasks&nbsp;that&nbsp;need&nbsp;to&nbsp;be&nbsp;performed,&nbsp;like&nbsp;determining&nbsp;the&nbsp;MIME&nbsp;type&nbsp;of&nbsp;&nbsp;<BR>the&nbsp;requested&nbsp;object&nbsp;or&nbsp;even&nbsp;write&nbsp;the&nbsp;code&nbsp;that&nbsp;sends&nbsp;the&nbsp;object&nbsp;back&nbsp;to&nbsp;&nbsp;<BR>the&nbsp;user.&nbsp;&nbsp;<BR>Handlers:&nbsp;A&nbsp;module&nbsp;can&nbsp;define&nbsp;&quot;handlers&quot;&nbsp;for&nbsp;one&nbsp;or&nbsp;more&nbsp;phases.&nbsp;For&nbsp;each&nbsp;&nbsp;<BR>phase&nbsp;the&nbsp;server&nbsp;has&nbsp;a&nbsp;list&nbsp;of&nbsp;handlers&nbsp;from&nbsp;various&nbsp;modules&nbsp;that&nbsp;should&nbsp;&nbsp;<BR>be&nbsp;called&nbsp;during&nbsp;each&nbsp;phase.&nbsp;Each&nbsp;module&nbsp;defines&nbsp;a&nbsp;hard-coded&nbsp;data&nbsp;&nbsp;<BR>structure&nbsp;that&nbsp;identifies&nbsp;what&nbsp;phases&nbsp;it&nbsp;can&nbsp;handle.&nbsp;&nbsp;<BR>When&nbsp;the&nbsp;server&nbsp;calls&nbsp;a&nbsp;handler,&nbsp;the&nbsp;handler&nbsp;performs&nbsp;its&nbsp;task&nbsp;and&nbsp;returns&nbsp;&nbsp;<BR>a&nbsp;status&nbsp;code&nbsp;indicating&nbsp;how&nbsp;things&nbsp;went.&nbsp;An&nbsp;OK&nbsp;code&nbsp;will&nbsp;be&nbsp;returned&nbsp;if&nbsp;&nbsp;<BR>the&nbsp;handler&nbsp;performed&nbsp;its&nbsp;task&nbsp;successfully.&nbsp;&nbsp;<BR>The&nbsp;handler&nbsp;can&nbsp;also&nbsp;decline&nbsp;to&nbsp;handle&nbsp;the&nbsp;request&nbsp;and&nbsp;return&nbsp;the&nbsp;DECLINED&nbsp;&nbsp;<BR>code,&nbsp;in&nbsp;which&nbsp;case&nbsp;the&nbsp;Web&nbsp;server&nbsp;simply&nbsp;ignores&nbsp;the&nbsp;handler&nbsp;and&nbsp;calls&nbsp;&nbsp;<BR>the&nbsp;next&nbsp;handler&nbsp;in&nbsp;the&nbsp;list&nbsp;for&nbsp;that&nbsp;phase.&nbsp;Should&nbsp;an&nbsp;error&nbsp;occur,&nbsp;the&nbsp;&nbsp;<BR>handler&nbsp;can&nbsp;indicate&nbsp;this&nbsp;by&nbsp;returning&nbsp;one&nbsp;of&nbsp;the&nbsp;HTTP&nbsp;error&nbsp;codes.&nbsp;The&nbsp;&nbsp;<BR>server&nbsp;will&nbsp;then&nbsp;abort&nbsp;further&nbsp;request&nbsp;processing,&nbsp;write&nbsp;a&nbsp;message&nbsp;to&nbsp;the&nbsp;&nbsp;<BR>error&nbsp;log&nbsp;and&nbsp;send&nbsp;an&nbsp;error&nbsp;message&nbsp;to&nbsp;the&nbsp;browser.&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;To&nbsp;sum&nbsp;up,&nbsp;a&nbsp;request&nbsp;goes&nbsp;through&nbsp;a&nbsp;number&nbsp;of&nbsp;phases.&nbsp;For&nbsp;each&nbsp;phase&nbsp;the&nbsp;&nbsp;<BR>server&nbsp;maintains&nbsp;a&nbsp;list&nbsp;of&nbsp;handlers.&nbsp;The&nbsp;server&nbsp;will&nbsp;call&nbsp;each&nbsp;handler&nbsp;in&nbsp;&nbsp;<BR>the&nbsp;list&nbsp;until&nbsp;a&nbsp;handler&nbsp;signals&nbsp;that&nbsp;it&nbsp;has&nbsp;handled&nbsp;the&nbsp;request&nbsp;or&nbsp;until&nbsp;&nbsp;<BR>an&nbsp;error&nbsp;is&nbsp;reported.&nbsp;A&nbsp;module&nbsp;can&nbsp;contain&nbsp;one&nbsp;or&nbsp;more&nbsp;handlers.&nbsp;Writing&nbsp;&nbsp;<BR>your&nbsp;own&nbsp;modules&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;you&nbsp;plan&nbsp;on&nbsp;writing&nbsp;your&nbsp;own&nbsp;modules&nbsp;you&nbsp;should&nbsp;start&nbsp;out&nbsp;by&nbsp;reading&nbsp;&nbsp;<BR>the&nbsp;&quot;Apache&nbsp;API&nbsp;notes&quot;&nbsp;section&nbsp;of&nbsp;the&nbsp;Apache&nbsp;documentation&nbsp;that&nbsp;comes&nbsp;with&nbsp;&nbsp;<BR>the&nbsp;server.&nbsp;This&nbsp;will&nbsp;give&nbsp;you&nbsp;a&nbsp;basic&nbsp;idea&nbsp;of&nbsp;how&nbsp;to&nbsp;write&nbsp;a&nbsp;module.&nbsp;&nbsp;<BR>&nbsp;&nbsp;After&nbsp;that,&nbsp;look&nbsp;at&nbsp;some&nbsp;of&nbsp;the&nbsp;modules&nbsp;that&nbsp;come&nbsp;with&nbsp;Apache.&nbsp;If&nbsp;you&nbsp;look&nbsp;&nbsp;<BR>under&nbsp;the&nbsp;src/modules&nbsp;directory&nbsp;in&nbsp;the&nbsp;Apache&nbsp;1.3&nbsp;source&nbsp;distribution&nbsp;you&nbsp;&nbsp;<BR>will&nbsp;find&nbsp;both&nbsp;standard&nbsp;and&nbsp;experimental&nbsp;modules&nbsp;plus&nbsp;a&nbsp;sample&nbsp;module&nbsp;&nbsp;<BR>called&nbsp;mod_example&nbsp;that&nbsp;is&nbsp;heavily&nbsp;commented&nbsp;to&nbsp;help&nbsp;you&nbsp;understand&nbsp;what&nbsp;&nbsp;<BR>it&nbsp;does.&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>Server-Side&nbsp;Programming&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Modules,&nbsp;like&nbsp;the&nbsp;Web&nbsp;server&nbsp;itself,&nbsp;are&nbsp;generally&nbsp;implemented&nbsp;in&nbsp;the&nbsp;C&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;programming&nbsp;language.&nbsp;While&nbsp;it&nbsp;makes&nbsp;perfect&nbsp;sense&nbsp;to&nbsp;write&nbsp;a&nbsp;Web&nbsp;server&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in&nbsp;C,&nbsp;it&nbsp;may&nbsp;not&nbsp;be&nbsp;very&nbsp;practical&nbsp;for&nbsp;the&nbsp;average&nbsp;Web&nbsp;developer&nbsp;to&nbsp;use&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it.&nbsp;C&nbsp;is&nbsp;rather&nbsp;hard&nbsp;to&nbsp;use,&nbsp;even&nbsp;harder&nbsp;to&nbsp;debug,&nbsp;and&nbsp;judging&nbsp;by&nbsp;some&nbsp;of&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;code&nbsp;I&nbsp;have&nbsp;seen,&nbsp;it&nbsp;can&nbsp;be&nbsp;terribly&nbsp;hard&nbsp;to&nbsp;read&nbsp;and&nbsp;understand.&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;Web&nbsp;industry&nbsp;moves&nbsp;at&nbsp;a&nbsp;fast&nbsp;pace.&nbsp;Customers&nbsp;want&nbsp;their&nbsp;Web&nbsp;sites&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;online&nbsp;quickly&nbsp;and&nbsp;many&nbsp;of&nbsp;the&nbsp;Web&nbsp;developers&nbsp;have&nbsp;little&nbsp;or&nbsp;no&nbsp;prior&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;experience&nbsp;in&nbsp;software&nbsp;development.&nbsp;Needless&nbsp;to&nbsp;say,&nbsp;the&nbsp;unforgiving&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nature&nbsp;of&nbsp;C&nbsp;makes&nbsp;it&nbsp;hard&nbsp;for&nbsp;inexperienced&nbsp;developers&nbsp;or&nbsp;those&nbsp;stressed&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;time&nbsp;to&nbsp;produce&nbsp;reasonably&nbsp;stable&nbsp;code&nbsp;fast&nbsp;enough.&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writing&nbsp;modules&nbsp;for&nbsp;Apache&nbsp;in&nbsp;C&nbsp;may&nbsp;be&nbsp;an&nbsp;option&nbsp;for&nbsp;some,&nbsp;but&nbsp;for&nbsp;others&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;time&nbsp;constraints&nbsp;or&nbsp;their&nbsp;ability&nbsp;may&nbsp;be&nbsp;too&nbsp;restrictive&nbsp;for&nbsp;a&nbsp;given&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;project.&nbsp;Fortunately,&nbsp;Apache&nbsp;gives&nbsp;you&nbsp;other&nbsp;ways&nbsp;to&nbsp;program&nbsp;function&nbsp;in,&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;most&nbsp;general&nbsp;solutions&nbsp;being&nbsp;the&nbsp;Common&nbsp;Gateway&nbsp;Interface&nbsp;(CGI)&nbsp;and&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FastCGI.&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Perhaps&nbsp;the&nbsp;most&nbsp;common&nbsp;solution&nbsp;in&nbsp;the&nbsp;past,&nbsp;and&nbsp;presumably&nbsp;to&nbsp;this&nbsp;day,&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;to&nbsp;use&nbsp;CGI&nbsp;in&nbsp;conjunction&nbsp;with&nbsp;some&nbsp;scripting&nbsp;language&nbsp;like&nbsp;Perl.&nbsp;While&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;widely&nbsp;used,&nbsp;CGI&nbsp;is&nbsp;actually&nbsp;rather&nbsp;crude.&nbsp;It&nbsp;relies&nbsp;on&nbsp;the&nbsp;Web&nbsp;server&nbsp;to&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spawn&nbsp;a&nbsp;new&nbsp;process,&nbsp;send&nbsp;the&nbsp;pertinent&nbsp;data&nbsp;for&nbsp;the&nbsp;request&nbsp;to&nbsp;the&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;process,&nbsp;and&nbsp;then&nbsp;read&nbsp;the&nbsp;response&nbsp;from&nbsp;the&nbsp;program&nbsp;and&nbsp;send&nbsp;it&nbsp;back&nbsp;to&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;client.&nbsp;As&nbsp;mentioned&nbsp;earlier,&nbsp;starting&nbsp;and&nbsp;stopping&nbsp;processes&nbsp;is&nbsp;the&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nemesis&nbsp;of&nbsp;performance,&nbsp;so&nbsp;the&nbsp;standard&nbsp;CGI&nbsp;mechanism&nbsp;is&nbsp;likely&nbsp;to&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;introduce&nbsp;bottlenecks&nbsp;into&nbsp;your&nbsp;system.&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Not&nbsp;only&nbsp;will&nbsp;the&nbsp;Web&nbsp;server&nbsp;have&nbsp;to&nbsp;spawn&nbsp;a&nbsp;new&nbsp;process,&nbsp;but&nbsp;if&nbsp;you&nbsp;use&nbsp;a&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scripting&nbsp;language&nbsp;like&nbsp;Perl,&nbsp;the&nbsp;Perl&nbsp;interpreter&nbsp;will&nbsp;have&nbsp;to&nbsp;read&nbsp;the&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script,&nbsp;load&nbsp;the&nbsp;appropriate&nbsp;Perl&nbsp;modules&nbsp;and&nbsp;compile&nbsp;the&nbsp;script&nbsp;into&nbsp;byte&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code&nbsp;that&nbsp;can&nbsp;then&nbsp;be&nbsp;executed.&nbsp;Even&nbsp;if&nbsp;you&nbsp;use&nbsp;a&nbsp;language&nbsp;that&nbsp;lets&nbsp;you&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;produce&nbsp;pre-compiled&nbsp;binaries,&nbsp;there&nbsp;is&nbsp;still&nbsp;the&nbsp;significant&nbsp;overhead&nbsp;of&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spawning&nbsp;a&nbsp;new&nbsp;process.&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;But&nbsp;CGI&nbsp;isn't&nbsp;all&nbsp;bad.&nbsp;The&nbsp;fact&nbsp;that&nbsp;it&nbsp;is&nbsp;so&nbsp;simple&nbsp;to&nbsp;use&nbsp;is&nbsp;probably&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;what&nbsp;made&nbsp;it&nbsp;so&nbsp;popular&nbsp;in&nbsp;the&nbsp;first&nbsp;place,&nbsp;and&nbsp;an&nbsp;added&nbsp;bonus&nbsp;is&nbsp;that&nbsp;you&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;not&nbsp;limited&nbsp;to&nbsp;any&nbsp;one&nbsp;language&nbsp;when&nbsp;creating&nbsp;CGI&nbsp;scripts.&nbsp;If&nbsp;you&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like,&nbsp;you&nbsp;can&nbsp;use&nbsp;any&nbsp;language&nbsp;that&nbsp;is&nbsp;able&nbsp;to&nbsp;read&nbsp;environment&nbsp;variables&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;communicate&nbsp;using&nbsp;the&nbsp;standard&nbsp;I/O&nbsp;mechanisms.&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;But&nbsp;before&nbsp;you&nbsp;dismiss&nbsp;CGI&nbsp;as&nbsp;old-hat,&nbsp;consider&nbsp;the&nbsp;Fast&nbsp;CGI&nbsp;option.&nbsp;When&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;you&nbsp;use&nbsp;FastCGI,&nbsp;your&nbsp;CGI&nbsp;scripts&nbsp;will&nbsp;not&nbsp;terminate&nbsp;between&nbsp;requests,&nbsp;but&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keep&nbsp;running,&nbsp;waiting&nbsp;for&nbsp;the&nbsp;next&nbsp;request&nbsp;to&nbsp;arrive,&nbsp;thus&nbsp;eliminating&nbsp;the&nbsp;&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -