首页 > 代码库 > Http学习笔记

Http学习笔记

1 Http的特点:

    Http是无状态、并发的。

    Http可以支持任意类型的数据传输。

    Http从1.1开始支持长连接,所谓长连接,即服务器不会轻易关闭一个连接,节省了频繁新建和关闭连接的代价;为TCP的的握手和拥塞控制等稳定性控制争取了时间。

    Http一般是客户先通过connection-close关闭上层连接,然后服务器再发FIN处理TCP的三次握手。

2 Http中的断点续传:

    Http中断点续传主要依靠RANGE选项控制。搞清楚RANGE选项功能即可。

3 Http缓存处理机制:

    一般地,静态内容对缓存的需求比较大。动态缓存要依赖数据库。

    3.1 如何判断请求是静态还是动态呢?

      在底层,一些服务器的源码是通过判断请求文件的后缀来判断的,一般用ASP、PHP、JSP、ASP.net、Perl、或CGI等编程语言写出来的东西都是动态的,.cgi,.jsp等后缀的文     件基本都是动态的。

      从HTTP协议的角度来看,Http请求的选项中,静态请求都会包含Expires和Cache-control选项。

    3.2 Expires和Cache-control中的max-age哪个优先级大?

       前者是绝对时间,后者是相对时间。后者的优先级大。

    3.3 Http缓存过期的处理方法:

       在有些情况下,我们无法在cache结点判断缓存是否过期,这个时候,只能与服务器交流。通过比对客户请求中if-no-match与服务器端所记录的的Etags(它是URI的一个          HASH值), 因为Etags是唯一的,只要不一致,说明肯定是过期了。还有一种方法是通过比对请求中的if-modified-since与服务器端记录的last-modified字段来判断是否过        期。如果通过比对发现没过期,服务器返回304,意思是说这个缓存可以用。