一、概述
libcurl作为是一个多协议的便于客户端使用的URL传输库,基于C语言,提供C语言的API接口,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP这些协议,同时支持使用SSL证书的安全文件传输:HTTP POST, HTTP PUT, FTP 上传, 基于HTTP形式的上传、代理、Cookies、用户加密码的认证等多种应用场景。另外,libcurl是一个高移...
libcurl, 开源阅读全文
一个 RESTful API 框架需要什么?
从应用程序开发的角度来看,RESTful API 的本质是一个 Web Application,而 RESTful API 框架就是实现这个 Web Application 所封装的一些列工具库,使开发者可以忽略底层实现的复杂度,专注以自身 Application 的逻辑设计。
一个 RESTful API 框架应该具备以下几个元素:
· Resources:资源的定义,即 HTTP URI(或称之为 HTTP URL Path)的定义。RESTful API 的设计围绕着 Resource 进行建模...
go-restful, REST, 开源阅读全文
虽然,当前go语言的rest框架比较多,其中比较有名的有beego, gin等。但是这些框架相对来说都有点太重,而Kubernetes中使用的go-restful框架是一个轻量级的框架,能够满足大多数restful程序开发中的需求,本文对项目中使用go-restful框架中使用到的基本概念和使用方式做了简单的整理,如有不当之处,请不吝赐教。
基本概念
go-restful 框架中最基础的几个概念包括: route, webservice, container。
route
route是http server的...
go-restful, REST, 开源阅读全文
libwebsockets增加ssl支持很简单,只需要在创建服务器时增加必要的信息就可以了。
一般来说只需要增加以下几行即可
struct lws_context_creation_info info; ...
/*证书的路径*/ info.ssl_cert_filepath = "xxx";
/*私钥的路径*/ info.ssl_private_key_filepath = "xxx&...
libwebsockets, 开源, 网络编程阅读全文
实现websocket服务器本身也是libwebsockets库的初衷,本篇博客将介绍如何利用libwebsockets库来实现一个简单的ws服务器。
1、添加websocket协议 这里创建服务器句柄的流程与http一致,需要修改的地方只有在创建服务器时传入的协议数组,即
struct lws_context_creation_info info; struct lws_context *context;
static struct lws_protocols protocols[] = &...
libwebsockets, 开源, 网络编程阅读全文
根据官方的说明来看,从2.0版本起,http协议的服务器已经自动集成在库中,不需要我们自己去实现。下面介绍如何使用库去实现http服务器。
1、填充服务器创建需要的参数
lws_context_creation_info是创建服务器句柄时用来定制服务器信息的结构体,所以我们首先需要填充该结构体。该结构体的定义如下。
/*这里只列出我们常用的成员,注释很详细,不做过多解释*/
struct lws_context_creation_info {
int port;
...
libwebsockets, 开源, 网络编程阅读全文
libwebsockets是一款轻量级用来开发服务器和客户端的C库。按照官方(https://libwebsockets.org/)给出的介绍来看,它不仅支持ws,wss还同时支持http与https,可以轻轻松松结合openssl等库来实现ssl加密。OK,本文将介绍如何下载使用功能这么强大的库。
下载
git clone https://github.com/warmcat/libwebsockets.git
编译
为了可以进行多平台编译,websockets项目采用CMake作为编译工具,所以如果机器上没有CMake需要去安装CMa...
libwebsockets, 开源, 网络编程阅读全文