下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
WebService之
http基礎原理主講:馬永亮(馬哥)
客服,1661815153
WebService之
httpd基本應用主講:馬永亮(馬哥)
客服,1661815153
WebService之
httpd編譯安裝主講:馬永亮(馬哥)
客服,1661815153
WebService之
LAMP主講:馬永亮(馬哥)
客服,1661815153
應用層表示層會話層傳輸層網絡層數據鏈路層物理層應用層IPv4,IPv6設備驅動程
序和硬件tcpudp套接字用戶進程內核應用層細節(jié)通信
細節(jié)xml,json80/tcp內核內核發(fā)送緩沖發(fā)送緩沖接收緩沖接收緩沖csproxy,proxy-fcgihttpd-2.4:mpmmoduleprefork:libphp5.soworker,event:libphp5-zts.socgifastcgi
DocumentRoot“/var/www/html”fcgi://:9000/pma/index.phpHost:ABcsurl<--patha.phpCGI:CommonGatewayInterface
index.htmllogo.gifbinner.jpga.cssb.css跨Internet的主機間通訊客戶端
應用程序使用TCP/IP
的主機服務器端
應用程序使用TCP/IP
的主機routerrouterrouterrouterrouterrouterLANLANWANDNS基本TCP客戶/服務器程序的套接字函數CLOSEDLISTENSYN_SENTSYN_RECVESTABLISHEDFIN_WAIT1FIN_WAIT1FIN_WAIT2TIME_WAITCLOSE_WAITLAST_ACKCLOSED阻塞模式多進程或多線程套接字監(jiān)聽的套按字已連接套接字Client1Client2ServerServer子進程1Server子進程2已連接套接字已連接套接字監(jiān)聽套接字IPCInterProcessCommunication同一主機進程信號、旗語、shmUnixSock跨主機的進程rpcsocket基本的Web服務請求步驟threadtask_struct:任務結構2560*86400Docroot:/var/www/html//var/www/html/images/logo.gif
index.htmlI/O工作模型c,php,
bash1000800:靜態(tài)200:bash進程ip:port:80host:http報文傳輸HTTP基于TCP套接字通信HTTP事務時延串行事務處理時延提高性能并行連接持久連接并行連接示例:4個事務缺點每個事務都會打開/關閉一條新的連接,會耗費時間和帶寬由于TCP的慢啟動特性的存在,每條新連接的性能都會有所降低可打開的并行連接數量實際上是有限的持久連接V.S.串行連接HTTP協議用戶識別機制承載用戶身份信息的HTTP首部客戶端IP跟蹤,通過用戶的IP地址對其進行識別用戶登錄,用認證的方式來識別用戶胖URL,一種在URL中嵌入識別信息的技術cookie,一種功能強大且高效的持久身份識別技術用于承載用戶信息的HTTP首部cookie的工作示例HTTP事務request<method><request-URL><version>Name:ValueName:Value<entity-body>response<version><status><reason>Name:ValueName:Value<entity-body>HTTP認證認證的4個步驟httpsssl/tlsssl:SecureSocketLayersslv3tls:TransportLayerSecuritytlsv1ODBCAPI:ApplicationProgrammingInterfacesqlDBA磁盤空間管理器緩沖管理器文件和存取接口鎖管
理器事務
管理器恢復
管理器計劃執(zhí)行器分析器優(yōu)化器操作求解器SQL語句.phpmysql-devel--with-mysqlphp-fpmLAMP查詢引擎連接管理器查詢
緩存分析
器php,htmlfastcgi,fcgihttpdphpHTTPS數字證書SSL握手交換協議版本號選擇一個兩端都了解的密碼對兩端的身份進行認證web應用場景中,服務端很少對客戶端進行認證生成臨時的會話密鑰,以便進行加密通信HTTP事務V.S.HTTPS事務站點證書有效性日期檢測簽名頒發(fā)者可信度檢測簽名檢測站點身份檢測回顧:CGI、用戶認證、虛擬主機、https、server-status100,1000010000,100http,socket,tcpdomainunix:文件路徑ipv4:ipv4:portipv6:ipv6:port阻塞I/O系統調用準備數據數據準備完成復制復制完成返回調用成功處理數據recvfrom進程被阻塞于recvfrom非阻塞I/O系統調用準備數據數據準備完成復制復制完成返回調用成功處理數據非阻塞阻塞recvfromI/O復用系統調用準備數據數據準備完成復制復制完成返回調用成功處理數據阻塞阻塞select/pollrecvfrom信號驅動I/O系統調用準備數據數據準備完成復制復制完成返回調用成功處理數據非阻塞阻塞SIGIO
sigactionrecvfrom異步I/O系統調用準備數據數據準備完成復制復制完成返回調用成功處理數據非阻塞aio_readI/O動作如何執(zhí)行?進程無法直接操作I/O設備,其必須通過系統調用請求kernel來協助完成I/O動作內核會為每個I/O設備維護一個buffer對于輸入而言,等待(wait)數據輸入至buffer需要時間,而從buffer復制(copy)數據至進程也需要時間根據等待模式不同,I/O動作可分為五種模式FiveI/OModelsblockingI/O:blockedallthewaynonblockingI/O:ifnodatainbuffer,immediatereturnsEWOULDBLOCKI/Omultiplexing(selectandpoll):blockedseparatelyinwaitandcopysignaldrivenI/O(SIGIO):nonblockedinwaitbutblockedincopy(signaledwhenI/Ocanbeinitiated)asynchronousI/O(aio_):nonblockedalltheway(signaledwhenI/Oiscomplete)同步I/O和異步I/OSynchronousI/O:引起請求進程阻塞,直到I/O完成;AsynchronousI/O:不導致請求進程阻塞;ComparisonofFiveI/OModelsBlockingversusMultiplexingIfwewanttoreadfrommultipledevices,wearenotabletodoitproperlywiththeread()system-callIfonedevicehasnodata,ourtaskwillbeblocked,andsocan’treaddatathatmayeavailablefromsomeotherdeviceIdea:use‘nonblocking’i/oWhenwe‘open()’adevice-file,wecouldspecifythe‘O_NONBLOCK’i/omodeForthekeyboard:twoproblemswiththis:The‘stdin’deviceisalreadyopenbydefaultIfatasktriestodomultiplexingwithdevicesthathavebeenopenedinnon-blockingmode,itwilllikelyconsumewaytoomuchcputime!Betteridea:use‘select()’The‘select()’system-callwasdesignedtoallowapplicationstoefficientlyperformi/omultiplexingWith‘select()’theapplicationinformsthekernelastowhichsystemdevicesitisinterestedinThekernelthen‘polls’thosedevices,toseeifanyofthemisreadytodoi/owithoutblockingIfnot,itputstheprocesstosleepuntilatleastonedeviceisreadytodoi/owithoutblockingselect/poll/epollselect本質上是通過設置或者檢查存放fd標志位的數據結構來進行下一步處理缺點單個進程可監(jiān)視的fd數量被限制,即能監(jiān)聽端口的大小有限#cat/proc/sys/fs/file-max
對socket進行掃描時是線性掃描,即采用輪詢的方法,效率較低需要維護一個用來存放大量fd的數據結構,這樣會使得用戶空間和內核空間在傳遞該結構時復制開銷大select/poll/epollpoll本質上和select沒有區(qū)別,它將用戶傳入的數組拷貝到內核空間,然后查詢每個fd對應的設備狀態(tài)其沒有最大連接數的限制,原因是它是基于鏈表來存儲的,但是同樣有一個缺點:大量的fd的數組被整體復制于用戶態(tài)和內核地址空間之間,而不管這樣的復制是不是有意poll還有一個特點是“水平觸發(fā)”,如果報告了fd后,沒有被處理,那么下次poll時會再次報告該fdselect/poll/epollepoll支持水平觸發(fā)和邊緣觸發(fā),最大的特點在于邊緣觸發(fā),它只告訴進程哪些fd剛剛變?yōu)榫托钁B(tài),并且只會通知一次使用“事件”的就緒通知方式,通過epoll_ctl注冊fd,一旦該fd就緒,內核就會采用類似callback的回調機制來激活該fd,epoll_wait便可以收到通知優(yōu)點:沒有最大并發(fā)連接的限制:能打開的FD的上限遠大于1024(1G的內存上能監(jiān)聽約10萬個端口)效率提升:非輪詢的方式,不會隨著FD數目的增加而效率下降;只有活躍可用的FD才會調用callback函數,即epoll最大的優(yōu)點就在于它只管理“活躍”的連接,而跟連接總數無關
內存拷貝,利用mmap()文件映射內存加速與內核空間的消息傳遞;即epoll使用mmap減少復制開銷I/O復用服務器進程需要一種預先告知能力,使得內核一旦發(fā)現進程指定的一個或多個I/O條件就緒,它就通知進程。這個能力就稱作I/O復用。起始行request<method><url><version>response<version><statuscode><reason_phrase>httpheaders空白行<body>mpm_winnt,MPMMethodGETPOSTHEADPUTDELETEOPTIONSTRACECONNECTIONWeb服務器的工作模型單進程/單線程多進程/多線程prefork,workermaxclientsprefork:256worker:150一個進程響應多個請求請求:狀態(tài)監(jiān)控狀態(tài)基于事件event多個進程響應N個請求web程序:編程語言,代碼腳本語言適用于web應用程序開發(fā)的語言或語言框架支持編譯功能的腳本型語言,編譯成中間代碼jsp(javabytecode),php(zendengine,opcode)編譯語言效率高htpasswdhtpasswd[-c][-m][-D]passwdfileusernamehtpasswdisusedtocreateandupdatetheflat-filesusedtostoreusernamesandpasswordforbasicauthenticationofHTTPusers-cCreatethepasswdfileIfpasswdfilealreadyexists,itisrewrittenandtruncated-mUseMD5encryptionforpasswords-DDeleteuserWebServerManyWebSitesPortIPFQDN<VirtualHostHOST>DocumentRoot“/path/to/site”ServerName</VirtualHost>.htaccessfiles(or"distributedconfigurationfiles")provideawaytomakeconfigurationchangesonaper-directorybasis.Afile,containingoneormoreconfigurationdirectives,isplacedinaparticulardocumentdirectory,andthedirectivesapplytothatdirectory,andallsubdirectoriesthereof.AuthTypeselectsthatmethodthatisusedtoauthenticatetheuserThemostcommonmethodisBasic,andthisisthemethodimplementedbymod_auth_basicTheBasicauthenticationsendsthepasswordfromtheclienttotheserverunencryptedAuthNamesetstheRealmtobeusedintheauthenticationTherealmservestwomajorfunctionsFirst,theclientoftenpresentsthisinformationtotheuseraspartofthepassworddialogbox.Second,itisusedbytheclienttodeterminewhatpasswordtosendforagivenauthenticatedarea.AuthUserFileSetsthepathtothepasswordfilethatcreatedwithhtpasswd.Ifyouhavealargenumberofusers,itcanbequiteslowtosearchthroughaplaintextfiletoauthenticatetheuseroneachrequestApachealsohastheabilitytostoreuserinformationinfastdatabasefilesThemod_authn_dbmmoduleprovidestheAuthDBMUserFiledirectiveThesefilescanbecreatedandmanipulatedwiththedbmmanageprogram.RequireProvidestheauthorizationpartoftheprocessbysettingtheuserthatisallowedtoaccessthisregionoftheserver.ThesuEXECfeatureprovidesApacheuserstheabilitytorunCGIandSSIprogramsunderuserIDsdifferentfromtheuserIDofthecallingwebserver.Usedproperly,thisfeaturecanreduceconsiderablythesecurityrisksinvolvedwithallowinguserstodevelopandrunprivateCGIorSSIprograms.OptionsAllAlloptionsexceptforMultiViews.Thisisthedefaultsetting.ExecCGIExecutionofCGIscriptsusingmod_cgiispermitted.FollowSymLinksTheserverwillfollowsymboliclinksinthisdirectory.IncludesServer-sideincludesprovidedbymod_includearepermitted.IncludesNOEXECServer-sideincludesarepermitted,butthe#execcmdand#execcgiaredisabled.Itisstillpossibleto#includevirtualCGIscriptsfromScriptAliaseddirectories.IndexesIfaURLwhichmapstoadirectoryisrequested,andthereisnoDirectoryIndex(e.g.,index.html)inthatdirectory,thenmod_autoindexwillreturnaformattedlistingofthedirectory.MultiViewsContentnegotiated"MultiViews"areallowedusingmod_negotiation.SymLinksIfOwnerMatchTheserverwillonlyfollowsymboliclinksforwhichthetargetfileordirectoryisownedbythesameuseridasthelink.ApacheAccessConfigurationApacheprovidesdirectory-andfile-levelhost-basedaccesscontrolHostspecificationsmayincludedotnotationnumerics,network/netmask,anddotnotationhostnamesanddomainsTheorderstatementprovicecontrolover“order”,butnotalwaysinthewayonemightexpectorderallow,deny--allowexplicitlyallowedclients,denieseveryoneelse;clientsmatchedbybothallowanddenyaredeniedFlatFileAuthentication<Directory/var/www/html/secret>AuthName“realm”AuthTypeb
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版城市更新項目施工環(huán)保及文明施工協議3篇
- 2025年度高標準住宅木工支模與裝修一體化承包協議4篇
- 2025年度個人設備租賃借款合同模板7篇
- 2025年染料中間體項目可行性研究報告
- 個人信用貸款合同2024年度3篇
- 2025年度挖掘機交易信息服務平臺合作協議4篇
- 2025版木跳板生產設備采購合同示范文本4篇
- 二零二五年度鐘點工家庭保姆綜合服務合同
- 二零二五年度港口集裝箱運輸公司股權轉讓合同
- 2025年度酒店客房滿意度調查與改進合同
- 2024年高考八省聯考地理適應性試卷附答案解析
- 足浴技師與店內禁止黃賭毒協議書范文
- 中國高血壓防治指南(2024年修訂版)要點解讀
- 2024-2030年中國光電干擾一體設備行業(yè)發(fā)展現狀與前景預測分析研究報告
- 湖南省岳陽市岳陽樓區(qū)2023-2024學年七年級下學期期末數學試題(解析版)
- 農村自建房安全合同協議書
- 杜仲葉藥理作用及臨床應用研究進展
- 4S店售后服務6S管理新規(guī)制度
- 高性能建筑鋼材的研發(fā)與應用
- 無線廣播行業(yè)現狀分析
- 漢語言溝通發(fā)展量表(長表)-詞匯及手勢(8-16月齡)
評論
0/150
提交評論