ETag 미들웨어
이 미들웨어를 사용하면 ETag 헤더를 쉽게 추가할 수 있다.
Import
ts
import { Hono } from 'hono'
import { etag } from 'hono/etag'사용법
ts
const app = new Hono()
app.use('/etag/*', etag())
app.get('/etag/abc', (c) => {
return c.text('Hono is cool')
})유지되는 헤더
304 응답은 동등한 200 OK 응답에서 보냈을 헤더를 포함해야 한다. 기본적으로 포함되는 헤더는 Cache-Control, Content-Location, Date, ETag, Expires, Vary다.
추가로 헤더를 보내고 싶다면 retainedHeaders 옵션과 기본 헤더를 포함하는 RETAINED_304_HEADERS 문자열 배열 변수를 사용할 수 있다:
ts
import { etag, RETAINED_304_HEADERS } from 'hono/etag'
// ...
app.use(
'/etag/*',
etag({
retainedHeaders: ['x-message', ...RETAINED_304_HEADERS],
})
)옵션
optional weak: boolean
약한 검증 사용 여부를 정의한다. true로 설정하면 값의 접두사에 w/가 추가된다. 기본값은 false이다.
optional retainedHeaders: string[]
304 응답에서 유지하려는 헤더를 지정한다.
optional generateDigest: (body: Uint8Array) => ArrayBuffer | Promise<ArrayBuffer>
커스텀 다이제스트 생성 함수. 기본적으로 SHA-1을 사용한다. 이 함수는 응답 본문을 Uint8Array로 받아 ArrayBuffer 또는 ArrayBuffer를 반환하는 Promise를 반환해야 한다.