关于Cowboy Cowboy是基于Erlang实现的一个轻量级.快速.模块化的http web服务器. Handlers,用于处理HTTP请求的程序处理模块. Plain HTTP Handlers(常规Handlers) Cowboy里面的handler最基础的事情就是实现 init/2 回调函数,处理请求,发送客户端响应(可选),最后返回. Cowboy根据 router configuration (路由配置)接收请求并初始化State. 下面是一个不做任何处理的handler: ini…
Cowboy是基于Erlang实现的一个轻量级.快速.模块化的http web服务器. 本文官方原文:http://ninenines.eu/docs/en/cowboy/1.0/guide/routing/ 默认情况下,Cowboy不会做什么事情.为了使Cowboy可用,需要映射URL和处理请求的Erlang模型(Module),这个过程,我们称之为路由(routing).当Cowboy接收到一个请求,通过路由,Cowboy就会尝试去匹配到相应请求的主机和资源路径.如果匹配成功,那么相关的Er…
Erlang cowboy 入门参考 cheungmine,2014-10-28 本文翻译自: http://ninenines.eu/docs/en/cowboy/HEAD/guide/getting_started/ 我没有按原文逐句翻译.仅仅是我自己的理解,力求简单明了.本文程序在RHEL6.4上写成并运行,参考下面的文章,安装Erlang: erlang在redhat上的安装 1 引言 Erlang不仅仅是一门语言,更是一个操作平台.Erlang开发者很少写单独的模块,而是写库和程序,然…
Erlang cowboy routing 路由 本文译自: http://ninenines.eu/docs/en/cowboy/1.0/guide/routing/ Routing 默认情况下,Cowboy 什么都不做. 所谓路由(routing),就是把URL请求映射到Erlang处理模块.一旦Cowboy收到一个请求,它会按指定的规则匹配请求的host和path,如果匹配成功,关联的模块代码就被执行.路由规则按每个host指定,Cowboy首先匹配host,然后匹配path,... 路由…
Erlang cowboy websocket 服务器 原文见于: http://marcelog.github.io/articles/erlang_websocket_server_cowboy_tutorial.html 本文不是原文的简单翻译,是参考原文,根据我的理解和实践写出来的.本文的源码见于: https://github.com/marcelog/erws 1 引言 Erlang可以用来实现一个websocket服务器.cowboy这样框架可以完成这个任务,使我们不必关注webs…
Erlang cowboy 处理简单的HTTP请求 原文出自: Handling plain HTTP requests 处理请求的最简单的方式是写一个简单的HTTP处理器.它的模型参照Erlang/OTP的gen_server,但是做了简化,Cowboy按次序调用了3个回调函数. Initialization 第一个回调,init/3,所有处理器都有这个函数,用于区分处理器类型,简单的HTTP处理器仅仅返回ok. init(_Type, Req, _Opts) -> {ok, Req, no_…
Erlang cowboy http request生命周期 翻译自: http://ninenines.eu/docs/en/cowboy/1.0/guide/http_req_life/ request的生命周期 本章解释服务器response之前的http request的步骤,以及cowboy实现的细节. Request/response 正如你了解到的,HTTP客户端连接到服务器,发送资源请求(request),服务器发送响应(response),其中包含可以获取到的资源. 在服务器发…
handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-balancer.Handler模块就是接受来自客户端的请求并产生输出的模块.有些地方说upstream模块实际上也是一种handler模块,只不过它产生的内容来自于从后端服务器获取的,而非在本机产生的. 在上一章提到,配置文件中使用location指令可以配置content handler模块,当Ng…
Erlang cowboy 处理不规范的client Cowboy 1.0 參考 本章: Dealing with broken clients 存在很多HTTP协议的实现版本号. 很多广泛使用的client,如浏览器.十分符合规范.可是也有一些特殊的client很糟糕,不遵守规范. Cowboy尽可能地遵守规范,可是仍然无法处理所有可能的情形.Cowboy关注真是 web下的自然例子. 假设client不遵守HTTP规范可能会无法理解Cowboy的响应.有一些变通的方法,本章就说明这个问题.…
Erlang的常驻模块与功能模块Residence moduleThe module where a process has its tail-recursive loop function(s).If the tail-recursive loop functions are implemented in several modules, all those modules are residence modules for the process.Functional moduleA mod…