diff --git a/docs/context.md b/docs/context.md index 39ad428..c21fdab 100644 --- a/docs/context.md +++ b/docs/context.md @@ -42,11 +42,11 @@ HTTP响应数据,此属性为interface{},因此可以设置不同的数据 ## BodyBuffer -HTTP的响应数据(字节),此数据为真正返回的响应体,大部分应用场景使用responder中间件将Body转换为字节赋值(BodyBuffer),并写入相应的`Content-Type`则可,少量应用场景需要可以直接将响应数据赋值而不通过中间件处理。 +HTTP的响应数据(字节),此数据为真正返回的响应体,大部分应用场景使用responder中间件将Body转换为字节(BodyBuffer),并写入相应的`Content-Type`则可,少量应用场景需要可以直接将响应数据赋值而不通过中间件处理。 ## RequestBody -HTTP请求体,对于`POST`,`PUT`以及`PATCH`提交数据的请求,此字段用于保存请求体。注意:默认Elton中并未从请求中读取相应的请求体,需要使用`body_parser`中间件来获取或者自定义相应的中间件。 +HTTP请求体,对于`POST`,`PUT`以及`PATCH`提交数据的请求,此字段用于保存请求体。注意:默认Elton并未从请求中读取相应的请求体,需要使用`body_parser`中间件来获取或者自定义相应的中间件。 ## RemoteAddr @@ -82,7 +82,7 @@ func main() { ## RealIP -获取客户端的真实IP,先判断请求头是否有`X-Forwarded-For`,如果没有再取`X-Real-Ip`,都没有则从连接IP中取。 +获取客户端的真实IP,先判断请求头是否有`X-Forwarded-For`,如果没有再取`X-Real-IP`,都没有则从连接IP中取。 **Example** ```go diff --git a/docs/middlewares.md b/docs/middlewares.md index 068fee9..85a7e78 100644 --- a/docs/middlewares.md +++ b/docs/middlewares.md @@ -146,6 +146,12 @@ func main() { 缓存中间件,对于`GET`与`HEAD`的请求,根据其`Cache-Control`判断是否可缓存,若可缓存则将数据缓存至store中,下次相同的请求直接从缓存中读取。缓存数据可指定数据压缩后缓存,并响应时根据客户端自动返回压缩或未压缩数据。需要注意当前基本所有浏览器均支持br压缩,但是浏览器只在https模式下才会设置支持br,因此服务仅运行在http上,则建议使用gzip压缩。 +- 请求的缓存key默认为`Method` + `RequestURI` +- `fetch`状态则表示无缓存时的请求,获取响应数据后判断是否可缓存,如果可缓存则设置缓存数据(状态:hit,数据:响应头及响应数据),不可缓存则设置缓存数据(状态:hit-for-pass,数据:空) +- `hit-for-pass`状态表示该请求有相应缓存,但该缓存表示该请求不可读取缓存 +- `hit`状态表示该请求有相应缓存,则缓存数据可用,直接使用缓存返回客户端 +- 如果有设置压缩,缓存数据若符合压缩条件则压缩后缓存,若不符合,则缓存原始数据。响应时需要客户端是否可接受压缩数据,若可以则直接返回压缩数据,若不可以则解压后返回 + **Example** ```go @@ -178,7 +184,7 @@ func main() { ## compress -响应数据压缩中间件,可对特定数据类型、数据长度的响应数据做压缩处理。默认支持`gzip`压缩,可扩展更多的压缩方式,如:brotli,zstd等。 +响应数据压缩中间件,可对特定数据类型、数据长度的响应数据做压缩处理。默认支持`gzip`,`brotli`压缩,可扩展更多的压缩方式,如:lz4,zstd等。 ### Compressor @@ -328,7 +334,7 @@ func main() { ## error handler -出错转换处理,用于将出错转换为json或text出错响应,建议在controller中对处理出错的自定义出错类型,使用出错中间件将相应的出错信息转换输出。 +出错转换处理,用于将出错转换为json或text出错响应,建议在业务逻辑中使用自定义的出错类型,使用出错中间件将相应的出错信息转换输出,可方便的汇总统计非自定义的出错类型,便于系统的优化。 **Example** ```go