HTTP协议和BS应用基本原理.ppt

上传人:wj 文档编号:17449207 上传时间:2023-07-25 格式:PPT 页数:39 大小:1.41MB
下载 相关 举报
HTTP协议和BS应用基本原理.ppt_第1页
第1页 / 共39页
HTTP协议和BS应用基本原理.ppt_第2页
第2页 / 共39页
HTTP协议和BS应用基本原理.ppt_第3页
第3页 / 共39页
HTTP协议和BS应用基本原理.ppt_第4页
第4页 / 共39页
HTTP协议和BS应用基本原理.ppt_第5页
第5页 / 共39页
HTTP协议和BS应用基本原理.ppt_第6页
第6页 / 共39页
HTTP协议和BS应用基本原理.ppt_第7页
第7页 / 共39页
HTTP协议和BS应用基本原理.ppt_第8页
第8页 / 共39页
HTTP协议和BS应用基本原理.ppt_第9页
第9页 / 共39页
HTTP协议和BS应用基本原理.ppt_第10页
第10页 / 共39页
HTTP协议和BS应用基本原理.ppt_第11页
第11页 / 共39页
HTTP协议和BS应用基本原理.ppt_第12页
第12页 / 共39页
HTTP协议和BS应用基本原理.ppt_第13页
第13页 / 共39页
HTTP协议和BS应用基本原理.ppt_第14页
第14页 / 共39页
HTTP协议和BS应用基本原理.ppt_第15页
第15页 / 共39页
HTTP协议和BS应用基本原理.ppt_第16页
第16页 / 共39页
HTTP协议和BS应用基本原理.ppt_第17页
第17页 / 共39页
HTTP协议和BS应用基本原理.ppt_第18页
第18页 / 共39页
HTTP协议和BS应用基本原理.ppt_第19页
第19页 / 共39页
HTTP协议和BS应用基本原理.ppt_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

HTTP协议和BS应用基本原理.ppt

《HTTP协议和BS应用基本原理.ppt》由会员分享,可在线阅读,更多相关《HTTP协议和BS应用基本原理.ppt(39页珍藏版)》请在冰点文库上搜索。

HTTP协议和BS应用基本原理.ppt

HTTP协议和BS应用基本原理,广州微软技术中心李强2023年7月25日,广州微软技术中心李强2023年7月25日,议题,01,02,03,04,05,Web应用工作流程,Http协议概况,Http协议解析,Http协议消息报头,B/S应用基本原理,从浏览器输入网址说起,回车的背后究竟发生了什么事情呢?

从浏览器输入网址说起,确定背后又发生了什么事情呢?

为什么会有这个输入框呢?

先探索一番,工具:

一款http嗅探器,如Httplook,请求,回应,来点高级的,Basicauthentication,Web浏览器/Web客户端,Web服务器,Web浏览器/Web客户端,Web应用工作流程,域名解析,发起Web请求,服务器回应,开始,结束,浏览器呈现结果,处理请求,Http协议,请求回应模式,Http协议概况,特性处于OSI模型中的应用层支持客户/服务器模式简单快速(常见请求方式:

GET、HEAD、POST)灵活:

允许传输任意类型的数据对象无连接:

限制每次连接只处理一个请求无状态:

如果后续处理需要前面的信息,则它必须重传(利、弊?

)协议发展历程Http0.9:

已过时,只接受GET,未指定版本号,不支持请求头Http1.0:

至今仍被广泛采用Http1.1:

当前版本,持久连接、缓存处理等,Http协议解析-请求,Url格式:

http:

/host“:

”portabs_pathport默认80abs_path没有的话,则必须给出“/”(通常浏览器可自动格式化)举例如输入,则自动转换为http:

/http:

/192.168.0.116:

8080/index.aspx,Http协议解析-请求,请求由3部分组成:

请求行、消息报头、请求正文请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如:

MethodRequest-URIHTTP-VersionCRLFMethod表示请求方法(全为大写),各个方法的解释如下:

GET请求获取Request-URI所标识的资源POST在Request-URI所标识的资源后附加新的数据HEAD请求获取由Request-URI所标识的资源的响应消息报头PUT请求服务器存储一个资源,并用Request-URI作为其标识DELETE请求服务器删除Request-URI所标识的资源TRACE请求服务器回送收到的请求信息,主要用于测试或诊断CONNECT保留将来使用OPTIONS请求查询服务器的性能,或者查询与资源相关的选项和需求Request-URI是一个统一资源标识符HTTP-Version表示请求的HTTP协议版本CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符),Http协议解析-请求,请求行应用举例GET方法:

GET/form.htmlHTTP/1.1(CRLF)POST方法:

POST/reg.jspHTTP/(CRLF)Accept:

image/gif,image/x-xbit,.(CRLF).HOST:

(CRLF)Content-Length:

22(CRLF)Connection:

Keep-Alive(CRLF)Cache-Control:

no-cache(CRLF)(CRLF)/该CRLF表示消息报头已经结束,在此之前为消息报头user=jeffrey&pwd=1234/此行以下为提交的数据HEAD方法:

与GET方法几乎一样。

不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。

PUT方法:

WebDav协议上传文件用此协议实现,Http协议解析-请求,消息报头Accept用于指定客户端接受哪些类型的信息。

eg:

Accept:

image/gif,表明客户端希望接受GIF图象格式的资源;Accept:

text/html,表明客户端希望接受html文本。

Accept-Charset用于指定客户端接受的字符集。

eg:

Accept-Charset:

iso-8859-1,gb2312.如果在请求消息中没有设置这个域,缺省是任何字符集都可以接受。

Accept-Encoding用于指定可接受的内容编码。

eg:

Accept-Encoding:

gzip.deflate.如果请求消息中没有设置这个域服务器假定客户端对各种内容编码都可以接受。

Accept-Language用于指定一种自然语言。

eg:

Accept-Language:

zh-cn.如果请求消息中没有设置这个报头域,服务器假定客户端对各种语言都可以接受。

Http协议解析-请求,消息报头Authorization用于证明客户端有权查看某个资源。

当浏览器访问一个页面时,如果收到服务器的响应代码为401(未授权),可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。

Host(发送请求时,该报头域是必需的)用于指定被请求资源的Internet主机和端口号,它通常从HTTPURL中提取出来的,eg:

http:

/包含Host请求报头域,Http协议解析-请求,消息报头User-Agent如我们上网登陆论坛的时候,看到一些欢迎信息列出了你的操作系统的名称和版本以及你所使用的浏览器的名称和版本,实际上,服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息。

请求报头举例,如:

User-Agent:

Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.0)(CRLF),Http协议解析响应,响应包括:

状态行、消息报头、响应正文状态行格式:

HTTP-VersionStatus-CodeReason-PhraseCRLFHTTP-Version表示服务器HTTP协议的版本Status-Code表示服务器发回的响应状态代码Reason-Phrase表示状态代码的文本描述状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

1xx:

指示信息-表示请求已接收,继续处理2xx:

成功-表示请求已被成功接收、理解、接受3xx:

重定向-要完成请求必须进行更进一步的操作4xx:

客户端错误-请求有语法错误或请求无法实现5xx:

服务器端错误-服务器未能实现合法的请求常见状态代码:

200OK/客户端请求成功400BadRequest/客户端请求有语法错误,不能被服务器所理解401Unauthorized/请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用403Forbidden/服务器收到请求,但是拒绝提供服务404NotFound/请求资源不存在,eg:

输入了错误的URL500InternalServerError/服务器发生不可预期的错误503ServerUnavailable/服务器当前不能处理客户端的请求,一段时间后可能恢复正常,Http协议解析响应,消息报头LocationLocation响应报头域用于重定向接受者到一个新的位置。

Location响应报头域常用在更换域名的时候。

ServerServer响应报头域包含了服务器用来处理请求的软件信息。

与User-Agent请求报头域是相对应的。

eg:

Server:

Apache-Coyote/1.1WWW-AuthenticateWWW-Authenticate响应报头域必须被包含在401(未授权的)响应消息中,客户端收到401响应消息时候,并发送Authorization报头域请求服务器对其进行验证时,服务端响应报头就包含该报头域。

eg:

WWW-Authenticate:

Basicrealm=BasicAuthTest!

/可以看出服务器对请求资源采用的是基本验证机制。

Http协议-消息报头,按其作用分为4种类型普通报头用于所有的请求和响应消息,但并不用于被传输的实体请求报头用于客户端向服务器端传递请求的附加信息以及客户端自身的信息,见前述响应报头用于服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息,见前述实体报头请求和响应消息都可以传送一个实体。

一个实体由实体报头域和实体正文组成,但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。

实体报头定义了关于实体正文(eg:

有无实体正文)和请求所标识的资源的元信息。

Http协议-消息报头,普通报头Cache-Control用于指定缓存指令,缓存指令是单向的,且是独立的,HTTP1.0使用的类似的报头域为Pragma请求时的缓存指令包括:

no-cache(用于指示请求或响应消息不能缓存)、no-store、max-age、max-stale、min-fresh、only-if-cached;响应时的缓存指令包括:

public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage.Date普通报头域表示消息产生的日期和时间Connection普通报头域允许发送指定连接的选项。

例如指定连接是连续,或者指定“close”选项,通知服务器,在响应完成后,关闭连接,Http协议-消息报头,实体报头Content-Encoding用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。

Content-Encoding这样用于记录文档的压缩方法,eg:

Content-Encoding:

gzipContent-Language描述了资源所用的自然语言。

没有设置该域则认为实体内容将提供给所有的语言阅读者。

eg:

Content-Language:

daContent-Length用于指明实体正文的长度,以字节方式存储的十进制数字来表示。

Content-Type指明发送给接收者的实体正文的媒体类型。

eg:

Content-Type:

text/html;charset=GB2312Last-Modified用于指示资源的最后修改日期和时间。

Expires给出响应过期的日期和时间。

为了让代理服务器或浏览器在一段时间以后更新缓存中的页面,我们可以使用Expires实体报头域指定页面过期的时间。

HTTP1.1的客户端和缓存必须将其他非法的日期格式(包括0)看作已经过期。

eg:

为了让浏览器不要缓存页面,我们也可以利用Expires实体报头域,设置为0,Http协议相关技术,代理一个中间程序,它既充当一个服务器,也充当一个客户机,为其它客户机建立请求。

一个代理在发送请求信息之前,必须解释并且如果可能重写它。

代理经常作为通过防火墙的客户机端的门户,代理还可以作为一个帮助应用来通过协议处理没有被用户代理完成的请求。

HTTP协议ContentLenth限制漏洞导致拒绝服务攻击使用POST方法时,可以设置ContentLenth来定义需要传送的数据长度,例如ContentLenth:

999999999,在传送完成前,内存不会释放,攻击者可以利用这个缺陷,连续向WEB服务器发送垃圾数据直至WEB服务器内存耗尽,Http协议-Demo,利用telnet观察http协议的通讯过程打开telnet打开telnet:

运行-cmd-telnet打开telnet回显功能:

setlocalecho连接服务器并发送请求HEAD使用open80/注意端口号不能省略HEAD/HTTP/1.0Host:

两次回车OPEN使用open80GET/index.aspHTTP/1.0/请求资源的内容Host:

两次回车,B/S应用基本原理,B/S中的S(服务器)是一种计算机硬件服务器应该算是一种高性能的计算机,它作为网络的节点,存储、处理网络上的数据、信息也是一种计算机软件如IIS服务器、Apache服务器,B/S应用基本原理,基本执行过程,企业应用执行过程,请求,回应,浏览器,Web服务器,浏览器,Web服务器,DB服务器,请求,回应,请求,回应,应用服务器,请求,请求,回应,回应,B/S应用基本原理,Html昵称:

网页我们需要了解的技术Html标准动态页面ajax,B/S应用基本原理,Html标准Html4古董级,但目前仍然流行,并可能一直流行下去的标准Html5目前部分浏览器已有试验性支持据说要2022年才能最终发布的标准增加了语义化标签、动画、多媒体、图形标签XHtml1采用xml结构,结构和表现分离内容兼容HTML4改革最成功的案例,B/S应用基本原理,动态网页Html只是一个文档标准,无法实现服务器应用方案通过querystring、form、cookie等传递参数服务器根据参数返回不同Html,B/S应用基本原理,Ajax动态网页的弊端页面内容只改变一丁点,也需要刷新整个页面刷新的体验不好Ajax优点克服以上弊端SOA思想,B/S应用基本原理,IIS6服务及组件IIS6服务Web服务:

iisw3adm.dll宿主于svchost.exeFTP服务:

ftpsvc.dll宿主于inetinfo.exeIIS管理服务:

iisadmin.dll宿主于inetinfo.exeIIS6核心组件http.sys:

超文本传输协议(HTTP)侦听程序Web服务管理和监视组件:

管理任务和工作进程(w3wp.exe)w3wp.exe:

处理请求以返回静态页面、调用Internet服务器API(ISAPI)扩展或筛选器或运行通用网关接口(CGI)处理程序inetinfo.exe:

文件传输协议服务(FTP服务)、简单邮件传输协议服务(SMTP服务)、网络新闻传输协议服务(NNTP服务)和IIS配置数据库,B/S应用基本原理,IIS6工作原理Http请求刚刚到达服务器的时候IIS可以处理html等静态资源,也可以处理asp和aspx等页面,它是如何做到的呢?

了解isapi(站点属性-主目录-配置)只是一个接口,起到一个代理的作用它的主要工作是映射所请求的页面(文件)和与此后缀名相对应的实际的处理程序了解aspxisapi扩展是一个ISAPI扩展只是服务器(IIS)的一个组成部分而已,B/S应用基本原理,IIS6工作原理理解宿主环境(Hosting)本质上,Asp.Net主要是由一系列类组成,类的主要目的就是将Http请求转变为对客户端的响应请求入口:

publicstaticvoidProcessRequest(HttpWorkerRequestwr);DeclaringType:

System.Web.HttpRuntimeAssembly:

System.Web,Version=2.0.0.0隔离机制应用程序池(相当于进程)Web应用程序(相当于应用程序域)完整请求过程从HTTP.SYS中获取当前的Http请求信息,并且将这些信息生成HttpWorkerRequest实例在相互隔离的应用程序域AppDomain中加载HttpRuntime调用HttpRuntime的ProcessRequest方法,B/S应用基本原理,IIS6工作原理理解管道(Pipeline)当Http请求进入Asp.NetRuntime以后,它的管道由托管模块(ManagedModules)和处理程序(Handlers)组成,并且由管道来处理这个Http请求,包含如下步骤:

HttpRuntime将Http请求转交给HttpApplication(程序员创建的Web应用程序)HttpApplication创建针对此Http请求的HttpContext对象,这些对象包含了关于此请求的诸多其他对象主要是HttpRequest、HttpResponse、HttpSessionState等。

这些对象在程序中可以通过Page类或者Context类进行访问Http请求通过一系列Module,Module对Http请求具有完全的控制权Http请求经过所有的Module之后,最后会被HttpHandler处理HttpHandler处理完以后,Http请求再一次回到Module,此时Module可以做一些某个工作已经完成了之后的事情,B/S应用基本原理,在IIS6/IIS5中的区别IIS5的ASP.net请求处理过程WebServer和ASP.NETApplication的分离同时只能运行一个aspnet_wp进程,每个基于虚拟目录的应用对应一个AppDomainASP.NETISAPI负责监控aspnet_wp进程,发现严重问题后结束进程InetInfo进程和aspnet_wp之间的通信采用Namedpipe,B/S应用基本原理,在IIS6/IIS5中的区别IIS6的ASP.net请求处理过程http.sys负责监听Request(内核模式)根据Request决定是否需要创建w3wp进程(用户模式),即多进程,可完全隔离将请求发送至队列,B/S应用基本原理,三层架构vs.IIS逻辑分层(Layer)进程完全host在web服务器逻辑上更清晰对伸缩性、分布式没有任何帮助物理分层(Tier)可将业务逻辑层或数据访问层独立到其它进程或服务器上业务逻辑运算任务可横向扩展,增加服务器即可增加容量跨进程通讯可能带来性能巨大损失复杂的部署结构给维护带来挑战,B/S应用基本原理,Web应用安全系统安全服务器安全漏洞-保持更新、最小权限原则DOS攻击-防火墙,入侵检测应用安全Sql注入-参数化sqlCookie欺骗-cookie加密并校验有效期绕过身份、权限认证-验证用户身份、权限,B/S应用基本原理,Web服务器IIS配置管理-Demo启用IIS组件添加删除windows组件/添加删除角色配置站点配置IP、端口、Host同一个站点可配置多个IP+端口+Host的组合同一个IP+端口,可配置多个Host,它是怎么做到的配置MIME未做配置则此类文件无法下载,如rar文件默认无法下载配置认证方式配置文件服务器(WebDav方式)配置虚拟目录配置应用程序池,练习题,HTTP协议使用httplook观察get、post、基本认证过程利用telnet观察http协议的通讯过程分析WebService所采用的Soap协议BS应用基本原理使用WebDav配置文件服务器安装配置Web应用程序(详细练习题请参考附件word文档),课后思考题,1、作为一种Web服务器,IIS是如何处理并发访问的,有没有什么漏洞?

如何攻击IIS。

2、请说明Web应用的身份验证方式有几种,并用自己的话阐述使用各种方式时,IIS与工作进程的协同工作的原理。

3、请阐述在第二题中,客户端浏览器在HTTP协议的基础上,是如何完成身份验证的。

谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2