版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WebService之
http基础原理主讲:马永亮(马哥)
客服,1661815153
WebService之
httpd基本应用主讲:马永亮(马哥)
客服,1661815153
WebService之
httpd2.4新特性主讲:马永亮(马哥)
客服,1661815153
WebService之
lamp入门主讲:马永亮(马哥)
客服,1661815153
MariaDB基础应用主讲:马永亮(马哥)
客服,1661815153
MariaDB基础应用主讲:马永亮(马哥)
客服,1661815153
C/S应用层表示层会话层传输层网络层数据链路层物理层应用层IPv4,IPv6设备驱动程
序和硬件tcpudp套接字用户进程内核应用层细节通信
细节xml,json80/tcp内核内核发送缓冲发送缓冲接收缓冲接收缓冲C10kerrorpages404,proxy,proxy-fcgihttpd-2.4:mpmmoduleprefork:libphp5.soworker,event:libphp5-zts.socgifastcgi
DocumentRoot“/var/www/html”fcgi://:9000/pma/index.phphttpda.phpCGI:CommonGatewayInterfaceindex.htmllogo.gifbinner.jpga.cssb.css70:相对:30绝对:402dfjdksfdsafdsafds\njfdkafjdksal;fdksalfdsd\n物理层逻辑层视图1DMLDDL执行引擎查询管理器存储管理器缓冲区管理器文件管理器授权及完整性管理器事务管理器数据文件索引数据字典统计数据分析器优化器执行计划文件存取方法缓冲区管理器磁盘空间管理器存储引擎root@172.16.%.%/etc/php.ini,/etc/php.d/*.iniLNMP,跨Internet的主机间通讯客户端
应用程序使用TCP/IP
的主机服务器端
应用程序使用TCP/IP
的主机routerrouterrouterrouterrouterrouterLANLANWANDNS基本TCP客户/服务器程序的套接字函数CLOSEDLISTENSYN_SENTSYN_RECVESTABLISHEDFIN_WAIT1FIN_WAIT1FIN_WAIT2TIME_WAITCLOSE_WAITLAST_ACKCLOSED阻塞模式多进程或多线程套接字监听的套按字已连接套接字Client1Client2ServerServer子进程1Server子进程2已连接套接字已连接套接字监听套接字IPCInterProcessCommunication同一主机进程信号、旗语、shmUnixSock跨主机的进程rpcsocket基本的Web服务请求步骤threadtask_struct:任务结构2560*86400Docroot:/var/www/html//var/www/html/images/logo.gif
index.htmlI/O工作模型c,php,
bash1000800:静态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磁盘空间管理器缓冲管理器文件和存取接口锁管
理器事务
管理器恢复
管理器计划执行器分析器优化器操作求解器SQL语句.phpmysql-devel--with-mysqlphp-fpmLAMP查询引擎连接管理器查询
缓存分析
器php,htmlfastcgi,fcgihttpdphpHTTPS数字证书SSL握手交换协议版本号选择一个两端都了解的密码对两端的身份进行认证web应用场景中,服务端很少对客户端进行认证生成临时的会话密钥,以便进行加密通信HTTP事务V.S.HTTPS事务站点证书有效性日期检测签名颁发者可信度检测签名检测站点身份检测回顾: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动作如何执行?进程无法直接操作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标志位的数据结构来进行下一步处理缺点单个进程可监视的fd数量被限制,即能监听端口的大小有限#cat/proc/sys/fs/file-max
对socket进行扫描时是线性扫描,即采用轮询的方法,效率较低需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大select/poll/epollpoll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态其没有最大连接数的限制,原因是它是基于链表来存储的,但是同样有一个缺点:大量的fd的数组被整体复制于用户态和内核地址空间之间,而不管这样的复制是不是有意poll还有一个特点是“水平触发”,如果报告了fd后,没有被处理,那么下次poll时会再次报告该fdselect/poll/epollepoll支持水平触发和边缘触发,最大的特点在于边缘触发,它只告诉进程哪些fd刚刚变为就需态,并且只会通知一次使用“事件”的就绪通知方式,通过epoll_ctl注册fd,一旦该fd就绪,内核就会采用类似callback的回调机制来激活该fd,epoll_wait便可以收到通知优点:没有最大并发连接的限制:能打开的FD的上限远大于1024(1G的内存上能监听约10万个端口)效率提升:非轮询的方式,不会随着FD数目的增加而效率下降;只有活跃可用的FD才会调用callback函数,即epoll最大的优点就在于它只管理“活跃”的连接,而跟连接总数无关
内存拷贝,利用mmap()文件映射内存加速与内核空间的消息传递;即epoll使用mmap减少复制开销I/O复用服务器进程需要一种预先告知能力,使得内核一旦发现进程指定的一个或多个I/O条件就绪,它就通知进程。这个能力就称作I/O复用。起始行request<method><url><version>response<version><statuscode><reason_phrase>httpheaders空白行<body>mpm_winnt,MPMMethodGETPOSTHEADPUTDELETEOPTIONSTRACECONNECTIONWeb服务器的工作模型单进程/单线程多进程/多线程prefork,workermaxclientsprefork:256worker:150一个进程响应多个请求请求:状态监控状态基于事件event多个进程响应N个请求web程序:编程语言,代码脚本语言适用于web应用程序开发的语言或语言框架支持编译功能的脚本型语言,编译成中间代码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/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位之间协议书
- 2025年广东广州市泰昌实业(消防工程)有限公司招聘笔试参考题库附带答案详解
- 2025年度个人房贷再担保合同标准范本4篇
- 2025年度个人车辆购置担保合同2篇
- 2025-2030全球狄氏剂行业调研及趋势分析报告
- 2025-2030全球黏性伤口护垫行业调研及趋势分析报告
- 2025-2030全球可擦除可编程只读 (EPROM) 存储器行业调研及趋势分析报告
- 2025年度个人网络安全防护解决方案服务合同2篇
- 2025版智慧社区消防安全管理合作协议3篇
- 2025年度个人住宅抵押贷款合同实施细则
- 国外文化消费研究述评
- 部编版语文四年级下册第一单元 迷人的乡村风景 大单元整体教学设计
- 血透病人体重健康宣教
- 大健康行业研究课件
- 租赁汽车可行性报告
- 计算机辅助设计AutoCAD绘图-课程教案
- 老年护理学-老年人与人口老龄化-课件
- 文化墙、墙体彩绘施工方案
- 初中化学校本课程
- 科技文献检索
- 元代文学绪论
评论
0/150
提交评论