Monthly Archives: December 2009

数据结构与算法复习(3)—— 线段树

http://www.cppblog.com/MemoryGarden/archive/2009/04/11/79565.aspx http://www.notonlysuccess.com/?p=59 http://edu.codepub.com/2009/1125/18163.php POJ 2104,2761,2777,3145,2464,2886,2991 等例子; http://farmerze.blogbus.com/logs/28186898.html http://blog.csdn.net/bill_108/archive/2009/11/25/4871392.aspx http://hi.baidu.com/andimeo/blog/item/0351b53eca224f3470cf6c18.html http://www.notonlysuccess.com/?p=142 注意区间树及其应用。

Posted in 数据结构与算法 | Tagged | Leave a comment

HTTP 头部 cache 控制字段

关于 cache 控制 HTTP/1.0 提供了一种简单的 cache 机制。一个源头服务器,使用一个带有时间戳的 Expires 头部标识在一个响应中,这样的意思就是表示何时过期。进一步还有条件请求:在请求头部中包含一个 If-Modified-Since 字段,指定的是响应头中的 Last-Modified 时间戳,这样服务器就响应 304,暗示被缓存的条目是有效的,或者重新取一遍条目之后返回 200。 HTTP/1.0 还包含一个机制:Pragma: no-cache,对于客户端而言,意思是一个请求不能从 cache 中获得。 HTTP/1.0 的机制大体上是没有问题的,但是可能有缺点,没有允许服务器或者客户端对 cache 进行完全的或者明确的控制。 HTTP/1.1 尝试提供明确的和可扩展的协议机制,保留了 1.0 中的设计。 在 1.1 中,一个 cache 条目在达到过期时间之前是新鲜的,在过期之后则是不新鲜的。一个 cache 不需要丢弃一个不新鲜的条目,但是在返回给客户端之前,它通常必须重新从源头服务器那里获得,协议允许源头服务器和终端用户来覆盖这种行为。 在 HTTP/1.0 中,一个 cache 条目使用 … Continue reading

Posted in Nginx | Comments Off

HTTP 协议学习(2)

2、请求方法、请求字段和响应字段 HEAD 方法是做什么的? The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the … Continue reading

Posted in Nginx | Comments Off

Nginx memcached 模块

Nginx 提供了一个 memcached 模块,使得能够从 memcached 中获取某些信息,而不仅仅是从本地文件了,这个特性要结合 upstream 模块;upstream 使得 Nginx 可以将接收到的请求转发给后端,然后它从后端读取并返回给客户端。 在代码实现上,upstream 算是一个比较复杂的模块,除去静态内容,Nginx 绝大多数情况下可能处理的都是动态产生的内容,比如 PHP,理清原理对熟悉 Nginx 有些帮助。 这个功能应该由 ngx_http_memcached_pass 中的 ngx_http_memcached_handler 驱动;这个 handler 函数使用 ngx_http_upstream_create 来初始化一个 upstream;upstream 中字段繁多,其中的 pipe 是 NULL。还要注册很多函数指针,譬如创建请求、处理头部之类的。然后进入 ngx_http_upstream_init 开始处理。 接下来的调用流程是 ngx_http_upstream_init -> ngx_http_upstream_init_request 调用 upstream 的 … Continue reading

Posted in Nginx, 系统编程 | Comments Off