WEB的发布过程.docx_第1页
WEB的发布过程.docx_第2页
WEB的发布过程.docx_第3页
WEB的发布过程.docx_第4页
WEB的发布过程.docx_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Web发布过程一个Web服务器也被成为HTTP服务器,它通过HTTP协议与客户端通信。这个客户端通常指的是Web浏览器。1 HTTP协议HTTP协议是一种让Web服务器与浏览器(客户端)通过Internet发送与接收数据的协议。它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。它是一个请求、响应协议。当客户端发送出一个请求,服务器响应这个请求。HTTP运用可靠的TCP连接,通常用的80端口。1.1 HTTP协议特点(1) HTTP协议是无状态的,同一个客户端的这次请求和上次请求没有对应关系,为了解决这个问题,基于HTTP协议的WEB程序引入Cookies来维护状态。(2) HTTP协议承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的SSL。HTTPS的端口号是443。(3) 在HTTP中,客户端总是通过建立一个连接与发送一个HTTP请求来发起一个事务,服务器不能主动去与客户端联系,也不能给客户端发出一个回叫连接。客户端与服务器端都可以提前中断一个连接。1.2 HTTP协议的组成部分HTTP协议中包含浏览器对Web服务器的请求部分和服务器对浏览器的应答部分。1.2.1 客户端请求一个客户端浏览器发送HTTP请求包含三部分:(1) Method-URI-Protocol/Version 方法-地址-版本(2) Request header 请求头(3) Entity body 请求实体Method:每个客户端的HTTP请求可以是HTTP规范中制定的许多请求类型中的一种。HTTP1.1支持七种类型的请求,它们是GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE。其中GET与POST是Internet应用中经常用到的两种请求类型。(1) GET方法:提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连。当使用GET方法的时候,body是为空的。GET提交的数据大小有限制(因为浏览器对URL的长度有限制)。GET方式需要使用Request.QueryString来取得变量的值。(2) POST方法是把提交的数据放在HTTP包的Body中。OST方法提交的数据没有限制。POST方式通过Request.Form来获取变量的值。(3) GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码。URI:完整地指定了Internet资源。一个URI通常被解析为相对服务器的根目录。这样,它应该总是一个/前缀开始。URI的基本格式为:schema:/host:port#/path/./?query-string#anchor。1) Scheme:指定低层使用的协议(例如:http, https, ftp)。2) Host:HTTP服务器的IP地址或者域名。3) Port:HTTP服务器的默认端口是80,这种情况下端口号可以省略。4) path:访问资源的路径。5) query-string:发送给http服务器的数据。6) anchor:锚。Version:指的是HTTP请求所用到的HTTP协议版本。Request header:包含了客户端环境与请求实体的一些有用信息。例如浏览器设定的语言、实体的长度等等。每条请求头用回车换行符(CRLF)分开。请求头域的种类主要有:(1) Cache头域1) If-Modified-Since:浏览器端缓存页面的最后修改时间发送到服务器去。2) If-None-Match:和Etag一起使用。3) Pragma:防止页面被缓存,和Cache-Control: no-cache作用一模一样。4) Cache-Control:指定Response-Request遵循的缓存机制。(2) Client头域1) Accept:浏览器可以接受的媒体类型。2) Accept-Encoding:浏览器申明自己接收的编码方法,通常指定压缩方法。3) Accept-Language:浏览器申明自己接收的语言。4) User-Agent:客户端使用的操作系统和浏览器的名称和版本。5) Accept-Charset:浏览器申明自己接收的字符集(3) Cookie/Login头域1) Cookie:将cookie的值发送给HTTP服务器。(4) Entity头域1) Content-Length:发送给HTTP服务器数据的长度。2) Content-Type:网页文件的类型。(5) Miscellaneous头域1) Referer:提供Request的上下文信息的服务器(6) Transport头域1) Connection:连接是否关闭。2)Host:指定请求资源的Internet主机和端口号。一个非常重要的空行分开请求头与实体,它标志着实体内容的开始。1.2.1 Web服务器的响应一个HTTP响应也由三部分组成:(1) Protocol-Status code-Description 协议-状态-描述(2) Response headers 响应头(3) Entity body 响应实体状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response。HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别(1)1XX 提示信息 - 表示请求已被成功接收,继续处理(2)2XX 成功 - 表示请求已被成功接收,理解,接受(3)3XX 重定向 - 要完成请求必须进行更进一步的处理(4)4XX 客户端错误 - 请求有语法错误或请求无法实现(5)5XX 服务器端错误 - 服务器未能实现合法的请求常见的状态码: (1)200 OK:表明请求被成功的完成,所请求的资源发送回客户端。(2)302 Found:重定向,新的URL会在Response中的Location中返回,浏览器会自动使用新的URL发出新的Request。(3)304 Not Modified:代表上次的文档应经被缓存了,还可以继续使用。(4)400 Bad Request:客户端请求与语法错误,不能被服务器所理解。(5)403 Forbidden:服务器收到请求,但是拒绝提供服务。(6)404 Not Found:请求的资源不存在。(7)500 Internal Server Error:服务器发生了不可预期的错误。(8)503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间Web服务器应带的头域主要种类有(1) Cache头域1) Date:生成消息的具体时间和日期2) Expires:浏览器会在指定时间内使用本地缓存(2)Cookie/Login头域1) P3P:用于跨域设置Cookie,这样可以解决frame跨域访问cookie的问题。2) Set-Cookie:用于把cookie发送到浏览器.(3)Entity头域1) ETag:和If-None-Match配合使用2) Last-Modified:用于指示资源的最后修改日期和时间。3) Content-Type:WEB服务器告诉浏览器自己响应的对象的类型和字符集。4) Content-Length:指明实体正文的长度,以字节方式存储的十进制数字来标识。5) Content-Encoding:WEB服务器表明自己使用了什么压缩方法压缩响应中的对象。6) Content-Language:WEB服务器告诉浏览器自己响应的对象的语言。(4)Miscellaneous头域1) Server:指明HTTP服务器的软件信息。2) X-AspNet-Version:如果网站是ASP.NET开发的,这个header用来表示ASP.NET的版本。3) X-Powered-By:表示网站是用什么技术开发的。(5)Transport头域1) Connection:用来保持和断开TCP连接。(6)Location头域1) Location:用于重定向一个新的位置,包含新的URL地址。1.3 浏览器请求网页的过程抽象的东西,难以理解,老感觉是虚的, 所谓眼见为实, 实际见到的东西,我们才能理解和记忆。我用Fiddler追踪了访问山东大学主页的HTTP过程。1.3.1 请求特点(2)当你在浏览器输入URL 的时候,浏览器发送一个Request去获取 的html. 服务器把Response发送回给浏览器。(2)浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如图片,CSS文件,JS文件。(3)浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。(4)等所有的文件都下载成功后。 网页就被显示出来了。2 Web服务器工作流程一个典型的Web服务器的工作流程图2-1所示:图 2-1 Web服务器的工作流程2.1 自主开发嵌入式Web服务器(目前已经做完的工作)自主开发嵌入式Web服务器的总体结构如图2-2所示:2-2 自主开发Web服务器该嵌入式Web服务器针对山东大学嵌入式实验室自主开发的嵌入式数据采集网关中操作系统开发,在IAR编译下生成可执行文件。其工作过程如下:(1) 端口号和外部命令行输入,启动服务后,进驻主循环。(2) 通过不断的接收请求以及处理请求,达到处理客户端请求的目的。(3) 当客户端发送请求时,服务器通过分析客户端请求信息,分析是否为”GET”请求,若为此请求,则获取请求的文件名,以及文件类型。(4) 根据不同的文件名及文件类型,调用不同的处理程序,这样就能处理静态页面请求。2.2 主要实现步骤(1)开启Web服务之前,需要从Flash中获得IP地址以及端口号。(2)获得端口号之后,先后调用socket、bind、listen系统调用开启Web服务器。(3)开启Web服务器之后,进入不断循环过程,在此过程,调用accept系统调用,进入阻塞状态,等待客户端的连接请求。(4)连接成功后,将获得与客户端通信的连接句柄,通过该句柄可以与客户端实现通信,使用该句柄获得客户端的请求信息。(5)获得请求信息后,通过分析,获得客户端发起连接的目的。客户端的请求信息以空格分开,关键信息在第一、二部分,第一部分为请求类型,比如GET、“POST”,第二部分是请求的具体内容,比如文件名及文件类型。2.3 目前已经实现的功能(1)通过浏览器能访问嵌入式数据采集网关中的一副固定的静态图像。(2)已经可以从串口摄像头获取连续图像传入到网关,但是现在不能通过浏览器进行连续获得。2.4 最近的主要工作(1)完善自主开发的W

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论