当前位置: 首页 > 软件库 > 服务器软件 > HTTP服务器 >

Cowboy

模块化的http服务器
授权协议 MIT
开发语言 ErLang
所属分类 服务器软件、 HTTP服务器
软件类型 开源软件
地区 不详
投 递 者 张和颂
操作系统 Linux
开源组织
适用人群 未知
 软件概览

cowboy是一个application,是一个小巧快速的良好模块化的http server。其中良好的clean module使得我们可以扩展到多种网络协议之中,cowboy自带的有tcp和ssl,而也有一些人提供了smtp等的扩展。

cowboy的特点:

1.代码少。
2.速度快。
3.模块化程度高,transport和protocol都可轻易替换。
4.采用二进制语法实现http服务,更快更小。
5.极易嵌入其它应用。
6.有dispatcher,可以嵌入FastCGI PHP 或者是 Ruby.
7.没有进程字典,代码干净。

  • 请求对象 Req对象是一个变量,用于获取关于请求的信息、读取请求体或发送响应。 在面向对象的意义上,它并不是一个真正的对象。它是一个简单的映射,可以在调用cowboy_req模块的函数时直接访问或使用。 Req对象是几个不同章节的主题。在本章中,我们将了解Req对象,并了解如何检索有关请求的信息。 Direct access Req映射包含许多文档化的字段,可以直接访问这些字段。它们是直接映射到H

  • 发送一个响应 必须使用Req对象发送响应。 Cowboy提供了两种不同的发送响应的方式:直接发送或通过流传递主体。响应报头和响应主体可以预先设置。一旦响应或流应答函数被调用,响应就被发送。 Cowboy还提供了一个发送文件的简化接口。它也只能发送文件的特定部分。 虽然每个请求只允许一个响应,但HTTP/2引入了一种机制,允许服务器推送与响应相关的额外资源。本章还描述了这个特性在Cowboy中的工作

  • Websocket 处理程序 Websocket处理程序提供了一个升级到Websocket的HTTP/1.1连接的接口,并在Websocket连接上发送或接收帧。 由于Websocket连接是通过HTTP/1.1升级机制建立的,所以Websocket处理器需要能够首先接收升级的HTTP请求,然后切换到Websocket并接管连接。然后,它们可以接收或发送Websocket帧,处理传入的Erlang

  • cowboy搭建 https://www.jianshu.com/p/e58ba45a348f https://gitee.com/w_g/cowboy/blob/2.2.0/rebar.config {cowboy ,{git, “https://gitee.com/w_g/cowboy.git”, {tag, “1.1.2”}}} ,{cowlib ,{git, “https://gitee.

  • 大体参考的这里,非常感谢他的例子   开发的时候先下载好cowboy的库,放到~/.erlang里面 code:add_pathz("/Users/mmc/erlang/3rd_libs/cowboy/ebin/"). code:add_pathz("/Users/mmc/erlang/3rd_libs/cowboy/deps/ranch/ebin/"). code:add_pathz("/Use

  • 监听器 监听器是一组在端口上监听新连接的进程。传入的连接由Cowboy处理。连接握手,可以使用一种或另一种协议。 这一章是针对Cowboy的。有关监听器的更多信息,请参阅Ranch User Guide。 Cowboy提供了两种类型的监听器:一种监听clear TCP连接,另一种监听Secure TLS连接。它们都支持HTTP/1.1和HTTP/2协议。 Clear TCP 监听器 clear T

  • The first cowboy boots The first cowboy boots were fabricated from tough leather that cosseted the cowboy's legs and vetoed them from rubbing against the leather stirrups and getting his ankles hurt i

  • 入门指南 Erlang不仅仅是一种语言,它还是应用程序的操作系统。Erlang开发人员很少编写独立的模块,他们编写库或应用程序,然后将它们捆绑到所谓的发布中。发布版包含Erlang VM以及运行该节点所需的所有应用程序,因此可以直接将其push到生产环境。 本章将带领您完成设置Cowboy、编写第一个应用程序和生成第一个发行版的所有步骤。在本章的最后,你应该知道将你的第一个Cowboy应用push

  • 路由 Cowboy 默认不执行任何操作. 要使Cowboy有用,需要将URI映射到负责处理请求的Erlang模块。这被称为路由。 URI,统一资源标志符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行标识的。 Cowboy使用以下算法路由请求: 如果没有配置的主机与请求URI匹配,则返

  •   基于cowboy一键创建erlang工程的前提是:已经安装了ets和rebar, 1、shell script如下: #!/bin/bash projectName=releaseErlangProject rebarfile=rebar.config projectPath=`pwd`/${projectName} runScript=run.sh #获取rebar工具 get_rebar(

  • 安装并配置MSYS2 给 MSYS2 添加国内的源 msys2使用教程 windows上msys2配置及填坑 注意:MSYS2进入E盘的命令是cd /E,可进入任意windows路径 cmd中使用make msys2中的make名称为C:\msys64\mingw64\bin\mingw32-make.exe,可以复制一份,重命名为make,然后将该路径添加到环境变量,就可以在cmd中使用了。 W

  • Websocket协议 本章将解释什么是Websocket,以及为什么它是软实时Web应用程序的重要组件。 描述 Websocket是对HTTP的扩展,它模拟客户端(通常是Web浏览器)和服务器之间的纯TCP连接。它使用HTTP升级机制建立连接。 Websocket连接是完全异步的,不像HTTP/1.1(同步)和HTTP/2(异步,但是服务器只能发起流来响应请求)。使用Websocket,客户端和

  • Handlers(处理程序) 处理程序是处理HTTP请求的Erlang模块。 普通的HTTP处理程序 Cowboy中最基本的处理程序实现了强制的init/2回调,操作请求,可选地发送响应,然后返回。 这个回调接收到Req对象和路由器配置中定义的初始状态。 一个不做任何事情的处理程序是这样的: init(Req, State) -> {ok, Req, State}. 尽管没有发送应答,一个

  • Cowboy 用户指南 基本原理 现代网络 The modern Web Erlang 和 Web Erlang and the Web 介绍 介绍- Introduction 入门指南 - Getting started 流程图- Flow diagram 配置 监听器 Listeners 路由- Routing 约束 - Constraints Handlers(处理器) 处理器- Handl

  • 上一章,我们简单的介绍了一下Cowboy.Sockets的源码结构。 这里我们主要来看一下如果使用Cowboy.Sockets提供的源码建立一个通讯服务器。 我们需要先准备一个TCP服务器的配置,只需要简单的new一下就好了。 没什么特别的,源码中已经为大家准备好了一些默认配置,包含发送和接收数据的缓冲区大小,是否保持长连接, 以及超时计算等等。(想要搞追其细节的同学可以F12进去看一下)  va

  • multipart(多部件)请求 Multipart(多部件)源自MIME, MIME是一种扩展电子邮件格式的互联网标准。 multipart消息是一个部件列表。一个部件包含报头和主体。部件的主体可以是任何媒体类型,并包含文本或二进制数据。部件可以包含多部件媒体类型。 在HTTP上下文中,multipart最常与multipart/form-data媒体类型一起使用。浏览器使用它通过HTML表单上

  • 项目需求并不需要太复杂的http运行,只需要达到需求即可,所以并不打算深入研究cowboy,直接简单运用到项目中。 改自hello world 1..app {application,qimiao,              [{description,"Socket acceptor pool for TCP protocols."},               {vsn,"1.2.1"},

  • 客户端的搭建方式和服务端基本差不多,这里就不做详细讲解,直接上代码。             和服务端一致,我们需要创建一个配置实例,表示我们的缓冲区大小等配置。              var _config = new TcpSocketClientConfiguration();             这里我们需要指定我们将要连接到哪一个地址的哪一个端口。             IPE

  • 官方get和post的代码是有问题的,1.1下运行crash,这里修改了下,贴代码   创建工程 rebar-creator create-app testCowboy   testCowboy_app.erl -module(testCowboy_app). -behaviour(application). -export([start/2, stop/1]). -define(C_ACC

  • 约束 约束是用来验证和转换用户输入的函数。 它们被用于Cowboy中的各个地方,包括路由器和cowboy_req匹配函数。 语法 约束以字段列表的形式提供。对于列表中的每个字段,可以应用特定的约束,如果字段缺失,还可以应用默认值。 字段可以是一个atom的字段、一个带约束的{field, constraints}元组或一个带约束(默认值为{field, constraints, default})

  • cowboy 2.0 版本程序是如何实现调试? 1. 修改 makefile 增加调试信息 PROJECT = echo_get PROJECT_DESCRIPTION = Cowboy GET echo example PROJECT_VERSION = 1 LOCAL_DEPS = mnesia DEPS = cowboy dep_cowboy_commit = master ERLC_OPT

  • 环境:ubuntu_server 1210 目的:构建web版hello world程序 参考链接: http://roberto-aloi.com/blog/2013/07/13/create-deploy-erlang-cowboy-application-heroku/   1.使用rebar 构建一个项目的基础目录   首先获取rebar工具 $ git clone  https://gi

 相关资料
  • 英文原文:http://emberjs.com/guides/models/connecting-to-an-http-server/ 如果Ember应用需要从HTTP服务器加载JSON数据,本指南将介绍如何配置Ember Data来从服务器端加载记录,不论服务器返回的数据格式是什么样子。 仓库使用了一个称为适配器,知道如何通过网络进行通信的对象。默认情况下,仓库会使用DS.RESTAdapter

  • 我正在尝试github存储库提供的牛仔示例: https://github.com/ninenines/cowboy/tree/master/examples/web_server 我使用erlang成功构建了这个版本。mk并运行以下命令,该命令将在我的linux终端中打开Erlang shell: 但当我打开<代码>http://localhost:8080在我的web浏览器中,我得到以下错误报

  • 本文向大家介绍轻松创建nodejs服务器(3):代码模块化,包括了轻松创建nodejs服务器(3):代码模块化的使用技巧和注意事项,需要的朋友参考一下 nodejs的功能块大都以模块的形式存在的。 通常会有一个统一入口index.js,然后调用不同的模块来完成我们需要的功能。 我们先来看看怎么把server.js变成一个模块让 index.js 主文件使用。 “http” 是nodejs自带的模块

  • 我正在尝试测试对 HTTP 服务器具有基础 GET 调用的代码。 我正在尝试使用WireMock,根据“入门指南”,我有以下代码: 运行测试时,我得到以下堆栈跟踪: 错误涉及端口8080,但我将端口配置为8888。我知道默认情况下WireMock以端口8080启动,因此这可能是其内部配置的问题。 这里有什么问题?

  • ?> 完全协程化的Http服务器实现,Co\Http\Server继承自Co\Server,在此不再赘述,只说差异。 与 Http\Server 的不同之处: 可以在运行时动态地创建、销毁 对连接的处理是在单独的子协程中完成,客户端连接的Connect、Request、Response、Close是完全串行的 !> 需要v4.4.0或更高版本 !> 若编译时开启HTTP2,则默认会启用HTTP2协

  • 程序代码 http_server.php $http = new Swoole\Http\Server("0.0.0.0", 9501); $http->on('request', function ($request, $response) { var_dump($request->get, $request->post); $response->header("Content