标签 HTTP 下的文章

关于HTTP解析的一点思考

似乎已经很久没有提到关于服务器的消息了,其实我一直都在写,只是有时事情比较多,会耽搁一点时间。

在使用C重写前,我就已经用Dlang实现了近2个版本的HTTP解析器,换成C之后,又换了几种思路,期间也参考现有的几种实现,可以说是有点积累,现总结成文,记录一下。

注:如下所指的HTTP均指代HTTP/1.1,不涉及HTTP/2的内容。

阅读剩余部分

基于Redis实现HttpSession

6月忙着毕业,很是尴尬没能坚持写点博客,不过7月争取补上这些债务。

最近,又在继续写应用服务器了,算是有点进展,之后就可以陆续谈一些这方面的内容。对于实现应用服务器这一块,个人认为存在如下几个难点:

  • 并发模型的选择与实现
  • HTTP协议解析模块的实现,尤其是现在又多了个HTTP/2.0
  • 应用框架的实现,主要是路由模块、IoC的实现方式以及基本的DI等

要实现应用框架,就必须提供基本的概念抽象,如Request、Response和Session等。Request和Response充其量是体力活,而Session的实现则需要慎重考虑了。

本文就为大家带来HttpSession实现方面的内容,思想为主,代码为辅。

阅读剩余部分

HTTP方法详解

先废话几句。

目前,我正在写一个web框架(没办法,作为毕业设计),因此持续关注这个领域。在很多框架的介绍页面,我都看到了“RESTful Supported”字眼,之前一直被搞得云里雾里,网页也能这么麻烦?好在最近正在拜读《RESTful Web Services Cookbook》这本书,没想到这方面的细节还挺多,所以想尽可能通过一个系列的blog向大家介绍REST。

REST是由Roy Fielding在其博士论文中提出来的,简单地说,它是一种架构风格,或者说是对web应用开发的一种架构风格的约束。经常用servlet的开发这一定对doGet和doPost相当熟悉,这两个函数对应HTTP中的GET和POST方法。仅仅使用这两个方法,其实就能开发比较复杂的网站了。这就让我们潜意识中认为“开发web,是如此的随心所欲,只要实现get和post就万事大吉了”。那么如果我们按照REST开发web(称之为RESTful),正常情况下,能够改善可扩展性(scalability)和可维护性,不过与此同时,它也要求开发者对HTTP方法有更加深入的理解和认识。

阅读剩余部分