http;

    

    http协议:博纳斯-李

    http/0.9:原型版本:GET ,PUT

    http/1.0:

      MIME:Multipurpose Internet Mail Extensions,多用途互联网邮件扩展

      Cache;缓存

      Method;GET,PUT,POST,HEAD,DELETE,TRACE,CONNECT,OPTIONS

        GET;请求获取相关资源

        POST;在资源之后附加某些数据,

        HEAD;请求资源的响应消息首部

        PUT;请求服务器存储一个资源

        DELETE;请求服务器删除某个资源

        TRACE;请求服务器回送收到的请求信息;主要用于测试和故障诊断;

        CONNET;保留未被使用;

        OPTIONS;请求查询服务器性能;或者查询与资源相关的选项和请求资源的需求;

  W3C;

  http/1.1;

     大大强化了缓存功能;

     持久连接的机制;keepalive,长连接;

   基于http协议的加速机制;speedy  --->  spdy

   httpng

   http/2.0

   http协议;

      应用层协议

      80/tcp

   https协议;

      应用层协议

      443/tcp

   TCP协议的特性;

      面向连接;

         建立连接(三次握手);维持连接;拆除连接(四次挥手)

         数据顺序传输

      将数据打包成段,并为每段提供CRC校验和;

      确认,重传和超时;

      流量控制;滑动窗口,

      拥塞控制;慢启动及拥塞避免算法

  http;hyper=text Transfer protocol,超文本传输协议

  html;Hyper=txet marked language,超文本标记语言;

  <html>

     <head>

       <title>xxxx</title>

       <meta>

     </head>

     <body>

     <body>

  </html>

  div

  css

  js

 工作模式;request/response模式;

 一次完整的http事务,请求<---->响应

 web资源;

    一个html文档

    一张图片

    一个mp3片段

    一个PHP界面

    一个js脚本

    ....

    客户端发送的一次请求,只能请求一个web资源;

URI;universal Resource Identifier,统一资源标识符

   web上可用的各种资源,如;html文档,图片,视频或音频片段,应用程序等,

   URI一般包括三个部分;

     1.访问资源的命名机制

     2.存放资源的主机名称

     3.资源自身的名称

  URI;uniform Resource Locator,统一资源定位符;

    URI是互联网上用来描述web资源的特定格式的一组字符串;

    URI一般由三部分组成;

      1.协议,资源的提供方式或询问;

      2.主机标识;可以是主机名称(FQDN),也可以是IP地址;

      3.资源路径,使用某种特定方式实现的路径映射机制,标识资源的具体位置;

  URI的通用格式;

     scheme://servar[:port]/PATH/TO/SOME_RESOUECE?PARAMETRS=VALUE#FLAGS

  http://www.baidu.com/index.html

  并发响应模型;

      单进程IO模型,只有一个进程,每次只能响应一个用户请求,串行响应;

      多进程IO模型,同时启动多个进程,每个进程都可以响应一个用户请求;

      复用的IO模型,一个进程响应多个用户请求,

         多线程模型;一个进程可以生成多个进程;每个线程响应一个用户请求

         事件驱动模型;一个进程直接响应多个用户请求

      复用的多进程IO模型;启动M个进程,每个进程生成N个线程,每个线程响应一个用户请求

      复用的时间驱动IO模型;启动M个进程,每个进程直接响应多个用户请求

  

  Web服务器的一次完整的http请求的处理过程;

     1.建立连接

     2.接收请求;将客户端发送来的报文经过解封之后放置于服务进程所在的内存空间

     3.处理请求;对于接收到的数据报文进行解析;

     4.访问资源;通过各种IO方式获取到用户请求的资源

     5.构建响应报文

     6.发送响应报文

     7.记录日志;

  资源的种类;

     静态资源,服务器会直接发送给客户端响应的资源;

        html文档

        图片(.jps.png.gif)

        流媒体

        文本

        js

     动态资源,在服务器上需要服务器按照某种方式执行之后生成相应的页面,再将页面发送给客户端响应的资源

        服务器端动态;php,jsp,NET,...

        客户端动态;js

   资源路径映射;

      chroot

        /mnt/sysroot/html/a.html

        chroot /mnt/sysroot

        /html/a.html

        /var/www/html    --  Documentroot

        http://172.16.72.1/index.html

   web服务器的资源映射方式

     1.documentroot

     2.alias

     3.vhost docroot

     4.用户的docroot

     ...

  http的请求处理的连接方式:

      持久连接,保持裂解,长连接,keepalive

         时间限制:15秒

         数量限制;100个请求

      非持久连接,短连接