|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你觉得数据库怎么样?我们在用Asp.net手艺开辟Web使用程序后,当用户在扫瞄器输出一个网址时就是再向服务器发送一个HTTP哀求,此时就利用了使用层的HTTP协定,在上一个专题我们复杂先容了收集协定的常识,次要是为了前面讲HTTP协定做一个展垫的,只要对HTTP协定有一个分明的熟悉,如许当我们用Asp.net手艺开辟Web使用程序时,我们能够多从收集协定的方面往思索我们的使用程序,而不是只是单单停止在对服务器控件的拖沓的利用,如许也能够匡助我们开辟一个本人的自界说web服务器。在这里我想同时把我对Asp.net的实质的了解和人人分享下,假如有甚么不合错误的中央,还请人人指出,起首,当我们计划一个算法的时分要明白输出参数和算法的前往(算法也就是也就是一个处置程序),实在Asp.net开辟的web网页能够了解为一个处置程序,由于我们在web扫瞄器中所看到的都是HTML文档(HTML也就是Asp.net网页处置后程序的输入,即算法的前往),但是输出参数也就是用户经由过程扫瞄器输出的一个Http哀求(能够说是哀求的一个URI地点),asp.net这门手艺就匡助我们把哀求的aspx页面翻译为HTML文档,然后HTML文档经由过程HTTP协定把HTML文档发送给扫瞄器,扫瞄器再把这么标签(HTML文档只是一串字符串,假如没有扫瞄器的剖析我们看到的也是一些字符串,而不是可视化的界面了)剖析为可视化的界面。如许一次web哀求也就停止。前面也会和人人分享下Asp.net中面前替我们所办事情的一些工具,这里仍是回到Http协定的先容吧。
1、HTTP协定的简介
HTTP中文为超文本传输协定,从名字上很简单了解,Http协定就是将超文本标志言语的文档(即Html文档)从web服务传送到客户真个扫瞄器。它属于一个使用层的协定。
2、收集的事情历程
当用户要会见收集中的某个网页时,大抵要经由以下几个步骤:
1.用户起首要断定网页文件地点的URL(一致资本定位符,也就是网页在收集上的家庭住址,经由过程这个地点就能够找到这个网页)如www.lmwlove.com。
2.扫瞄器向DNS(域名服务器)收回哀求,告知DNS说:"我要把www.lmwlove.com转化为它所界说的IP地点",这里能够复杂把DNS了解为一个字典,晓得域名就能够晓得域名关于的IP地点,他们有这个一个映照的干系。
3.DNS收到哀求后就入手下手查询,查到后向扫瞄器前往了局。如域名为www.lmwlove.com对应的IP地点为61.155.169.116。
4.晓得IP地点后,扫瞄器向IP地点为61.155.169.116的主机收回与端标语80倡议一条TCP毗连哀求(HTTP协定是创建在传输层TCP的基本上的),80端口是服务器供应web服务的默许端口。
5.创建毗连后,扫瞄器收回一条HTTP哀求,如GEThttp://www.lmwlove.com/HTTP/1.1
6.当域名为www.lmwlove.com的服务器承受到哀求后,向扫瞄器发送一个html文件。
7.文件发送完后,由服务器自动封闭TCP毗连。
8.扫瞄器吸收传送来的页面并显现。
9.假如Html文件中包括图片,还要与服务器再次创建一个TCP毗连,以即可以下载图片。
下面先容的步骤中,扫瞄器收回一个哀求后,怎样把一个服务器上的HTML文档下载到哀求网页的主机上呢?这个历程就是由HTTP完成,即完成超文本文件的传送,HTTP协定是web服务器的基本。
2、HTTP哀求
Http哀求由三部分构成:哀求行、哀求头和哀求数据,一个HTTP哀求的格局一样平常以下:
哀求办法URLHTTP版本号哀求头信息<一个空行>哀求数据
HTTP哀求的办法以下表:
办法形貌Get前往URL所指的文档,一样平常用来哀求下载Web网页Head哀求文档头,它相似Get办法,只是Web服务器前往指定文档的首部信息Post它与Get办法相反,哀求服务器承受指定文档,但它不交换已有的文档,只是将新数据附加在它的前面Put它与Get办法相似,用从客户端传送的数据代替指定文档中的内容,使客户能够向远程Web服务器传送网页等文件Delete哀求服务器删除指定的页面Options同意客户端检察服务器的功能Trace用于测试同意客户端检察的动静接纳历程
常常利用的是Get和Post办法,当利用Get办法收回哀求时,哀求数据为空,以是此时的HTTP哀求行就由两部分构成:哀求行和哀求头信息,上面我们抽象看看详细的HttP的实例:
当在扫瞄器中地点栏内里输出:www.ckuyun.com,此时我们相称于收回一个HTTP哀求,详细为:
而且从图中能够看出网页中含有图片剧本等文件时,客户端会持续与服务器收回哀求,哀求所必要的图片和剧本文件。
增补:经一名伴侣的留言中,在这里我增补下,如今一般是只创建一个TCP毗连,经由过程HTPP哀求头的Connetion字段来指明,当服务器收到附带有Connection:Keep-Alive的哀求时,它也会在呼应头中增加一个一样的字段来利用Keep-Alive。如许一来,客户端和服务器之间的HTTP毗连就会被坚持,不会断开,(一些特别情形除外)当客户端发送别的一个哀求时,就利用这条已创建的毗连。
上面先容下哀求头的信息:
Accept:暗示客户端吸收的数据范例。比方,Accept:text/html暗示客户端可吸收HTML范例的文本
UserAgent:暗示客户端软件范例
Referer:暗示的是上连续接的url,如跳转到本页面的上一页面url。
上图是一个经由过程Get办法把一个HTML文件下载到本例扫瞄器中显现的历程,当我们在博客园主页面点上岸后输出用户名和暗码后点确认按钮后,此时我们收回的HTTP的哀求是经由过程Post办法,上面是一个截图:
从图中能够看出,经由过程Post办法收回的HTTP哀求中有一个空行(空行后为哀求数据),而Get办法收回的哀求中没有。
3、HTTP呼应
一样,Http呼应也是由三部分构成:形态行,呼应头和呼应数据构成,Http呼应格局以下:
形态行呼应头<一个空行>呼应数
形态行以HTTP版本号入手下手,前面随着3为数字,代表呼应代码,呼应代码用来告知客户端,服务器是不是发生了预期的呼应。如HTTP/1.1200OK.
HTTP/1.1中界说五种呼应代码:
1xx:唆使信息--暗示哀求已吸收,持续处置
2xx:乐成--暗示哀求已被乐成吸收、了解、承受
3xx:重定向--要完成哀求必需举行更进一步的操纵
4xx:客户端毛病--哀求有语法毛病或哀求没法完成
5xx:服务器端毛病--服务器未能完成正当的哀求
详细呼应代码的申明见下:
HTTP呼应头用于服务器向客户端供应哀求文档信息或服务真个形态信息,如图:
4、总结
到这里这篇文章也算是说完了,HTTP协定只是使用层中协定的个中之一,使用层另有其他的一些协定,好比FTP(文件传输协定),SMTP(电子邮件协定)等,这些协定在前面城市有所先容。前面一个专题盘算使用HTTP协定的只是自界说一个复杂的Web服务器来摹拟我们寻常在扫瞄器中输出网址后发送Http哀求和服务器前往呼应的历程。简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。 |
|