HTTP协议简介

来源:互联网 发布:查学校的软件 编辑:程序博客网 时间:2024/06/15 08:34
简介:在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP,所以:

    HTML是一种用来定义网页的文本,会HTML,就可以编写网页;

    HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信。

(1)、你可以借助工具分析HTTP协议,例如:开发者工具、FireBug、WireShark等等工具,这就看个人喜好了偷笑

   可以分析HTTP的请求报头和响应报头:

           例如,请求报头的   请求行  GET / HTTP1.1   (核心部分)

                                     GET表示一个读取请求,将从服务器获得网页数据,/表示URL的路径,URL总是以/开头,/就表示首页,最后的HTTP/1.1指示采用的HTTP协议版本是1.1。
   目前HTTP协议的版本就是1.1,但是大部分服务器也支持1.0版本,主要区别在于1.1版本允许多个HTTP请求复用一个TCP连接,以加快传输速度。

          响应报头的  状态行  HTTP/1.1 200 OK   (核心部分)
                      200表示一个成功的响应,后面的OK是说明。失败的响应有404 Not Found:网页不存在,500 Internal Server Error:服务器内部出错,等等。

响应:当浏览器读取到新浪首页的HTML源码后,它会解析HTML,显示页面,然后,根据HTML里面的各种链接,再发送HTTP请求给新浪服务器,拿到相应的图片、视频、Flash、JavaScript脚本、CSS等各种资源,最终显示出一个完整的页面。所以我们在Network下面能看到很多额外的HTTP请求。

(2)、HTTP请求过程详解(分为三个步骤)

 第一步:浏览器首先向服务器发送HTTP请求:  (以下是详细说明)  

             方法:GET还是POST任君选择,GET仅请求资源,POST会附带用户数据;

             路径:/full/url/path;

             域名:由Host头指定:Host: www.sina.com.cn

             以及其他相关的Header;

             如果是POST,那么请求还包括一个Body,包含用户数据。

第二步:服务器向浏览器返回HTTP响应:(以下详细说明)

             响应代码:200表示成功,3xx表示重定向,4xx表示客户端发送的请求有错误,5xx表示服务器端处理时发生了错误;

            响应类型:由Content-Type指定;

            以及其他相关的Header;

          通常服务器的HTTP响应会携带内容,也就是有一个Body,包含响应的内容,网页的HTML源码就在Body中。

第三步:如果浏览器还需要继续向服务器请求其他资源,比如图片,就再次发出HTTP请求,重复步骤一、二。

           例:将小图拼成大图( sprite) 以减少服务器请求次数,加快网络访问速度;


(3)HTTP运行原理小结Web采用的HTTP协议采用了非常简单的请求-响应模式,从而大大简化了开发。当我们编写一个页面时,我们只需要在HTTP请求中把HTML发送出去,不需要考虑如何附带图片、视频等,浏览器如果需要请求图片和视频,它会发送另一个HTTP请求,因此,一个HTTP请求只处理一个资源。

HTTP协议同时具备极强的扩展性,虽然浏览器请求的是http://www.sina.com.cn/的首页,但是新浪在HTML中可以链入其他服务器的资源,比如<img src="http://i1.sinaimg.cn/home/2013/1008/U8455P30DT20131008135420.png">,从而将请求压力分散到各个服务器上,并且,一个站点可以链接到其他站点,无数个站点互相链接起来,就形成了World Wide Web,简称WWW。

      采用的技术是CDN技术;


PS:介绍下CDN

     CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和
环节,使内容传输的更快、更稳定。

      通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

公用的去CDN取,每个框架都有公用开放的CDN;  例如JQuery的公用CDN接口是:http://www.jq22.com/cdn/



学习的过程很快乐,希望和大家一起进步,一起探讨新的知识;新学员有总结的不对的地方,也欢迎来帮我指正,谢谢!吐舌头

         







0 0