设为首页 加入收藏

TOP

[自翻]fasthttp中文文档(持续更新)(一)
2017-09-30 13:50:09 】 浏览:3059
Tags:自翻 fasthttp 中文 文档 持续 更新

fasthttp是由valyala编写的声称快于Go官方标准库net/http包十倍的快速HTTP实现。从各方的性能测试结果来看(评测一评测二),fasthttp作为当下最快的http Go语言包当之无愧。本着学习、交流的目的,笔者近日起将着手该包文档的翻译,希望能够对大家有所帮助。由于个人水平所限,翻译过程中难免出现疏忽遗漏之处,如发现请及时指出,方便勘误,谢谢。

原英文文档请参见:https://godoc.org/github.com/valyala/fasthttp


fasthttp包 

import "github.com/valyala/fasthttp"

fasthttp包提供了快速HTTP服务端及客户端API。

Fasthttp提供的功能如下:

  *速度优化。在现代硬件上,可轻松实现处理超过100K qps,超过100万的keep-alive长连接并发。

  *低内存使用优化。

  *通过RequestCtx.Hijack,支持易连接升级“Connection:Upgrade”协议。

  *服务端支持请求pipelining流水线操作。可以从一个网络包中读取多个请求,亦可以从一个网络包中发送多个响应。这十分利于支撑高负载的REST服务。

  *服务端提供以下反Dos攻击限制:

    *并发连接数量限制。

    *每个客户端IP并发连接数量限制。

    *每个连接请求数限制。

    *请求读取超时限制。

    *响应写入超时限制。

    *最大header请求头大小限制。

    *最大body请求体大小限制。

    *最大请求执行时间限制。

    *最大keep-alive长连接生命周期限制。

    *提供早期过滤掉非GET请求功能。

  *诸多额外有用的信息被暴露在请求处理程序handler中:

    *服务端及客户端地址。

    *每一个请求的日志。

    *唯一的请求id。

    *请求开始时间。

    *连接开始时间。

    *当前连接的请求序列号。

  *客户端支持失败请求自动重发。

  *fasthttp API的设计具有扩展现有客户端及服务端实现,或重新编写自定义客户端及服务端的能力。

func AppendBytesStr(dst []byte, src string) []byte
AppendBytesStr函数用于附加src源字符串至dst目的字节切片中,并返回扩展后的dst目的字节切片结果。
该函数与append(dst, src...)相比并没有性能优势。此处保留仅出于向后兼容考虑。
该函数并不推荐使用,未来可能被移除。

func AppendGunzipBytes(dst, src []byte) ([]byte, error)
AppendGunzipBytes函数用于附加gunzip压缩源src字节切片至dst目的字节切片中,并返回处理后的dst目的字节切片结果及错误信息。

func AppendGzipBytes(dst, src []byte) []byte
func AppendGzipBytes函数用于附加gzip压缩源src字节切片至dst目的字节切片中,并返回处理后的dst目的字节切片。

func AppendGzipBytesLevel(dst, src []byte, level int) []
AppendGzipBytesLevel函数用于以给定压缩级别附加gzip压缩源src字节切片至目的字节切片,并返回处理后的dst目的字节切片结果。
支持的压缩级别:
* compressnocompression 未压缩
* compressbestspeed 最快速度
* compressbestcompression 最大压缩比
* compressdefaultcompression 默认压缩级别

func AppendHTMLEscape(dst []byte, s string) []byte
AppendHTMLEscape函数用于附加含有转义字符的HTML字符串s至dst目的字节切片中,并返回扩展后的dst目的字节切片结果。

func AppendHTMLEscapeBytes(dst, s []byte) []byte
AppendHTMLEscapeBytes函数用于附加含有转移字符的HTML字节切片s至dst目的字节切片中,并返回扩展后的dst目的字节切片结果。

func AppendHTTPDate(dst []byte, date time.Time) []byte
AppendHTTPDate函数用于附加符合RFC1123格式的日期time.Time类型date至dst目的字节切片中,并返回扩展后的dst目的字节切片结果。

func AppendIPv4(dst []byte, ip net.IP) []byte
AppendIPv4函数用于附加给定ipv4字符串表达式至dst目的字节切片。并返回扩展后的dst目的字节切片结果。

func AppendNormalizedHeaderKey(dst []byte, key string) []byte
AppendNormalizedHeaderKey函数用于附加正常的header key键名字符串至dst目的字节切片,并返回dst目的字节切片结果。
正常的header key以大写字母开头,且破折号后的第一个字母同样为大写字母,而其他字母则由小写字母表示。例如:
* coNTENT-TYPe -> Content-Type
* HOST -> Host
* foo-bar-baz -> Foo-Bar-Baz

func AppendNormalizedHeaderKeyBytes(dst, key []byte) []byte
AppendNormalizedHeaderKeyBytes函数用于附加正常的header key键名字节切片至dst目的字节切片,并返回dst目的字节切片结果。
正常的header key以大写字母开头,且破折号后的第一个字母同样为大写字母,而其他字母则由小写字母表示。例如:
* coNTENT-TYPe -> Content-Type
* HOST -> Host
* foo-bar-baz -> Foo-Bar-

func AppendQuotedArg(dst, src []byte) []byte
AppendQuotedArg函数用于附加编码过的url src源字节切片至dst目的字节切片中,并返回附加过的dst目的字节切片结果。

func AppendUint(dst []byte, n int) []byte
AppendUint函数用于附加整型变量n至dst目的字节切片中,并返回扩展后的dst目的字节切片。

func Dial(addr string) (net.Conn, error)
Dial函数使用tcp4拨打给定TCP地址。
该函数与net.Dial相比具有以下附加功能:
*利用DefaultDNSCacheDuration缓存解决TCP寻址,降低了DNS解析器负载。
*其会以轮询方式拨打所有已解决的TCP地址直到连接被建立。如果某些地址暂时无法访问,其将会起到作用。
*如果在DefaultDialTimeout秒内连接无法被建立,其将会返回ErrDialTimeout错误。
此拨号器用于在传递给Client.Dial或HostClient.Dial前,包装自定义代码。
例如,每个主机计数器或及其限制可能通过此种包装器

首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇用go和zk实现一个简单的分布式ser.. 下一篇Mac上安装go环境

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目