Demo HTTP Caching với ETag

Là một web developer, hầu hết ứng dụng của chúng ta hiện nay đều cài đặt theo kiến trúc client-server sử dụng giao thức HTTP. Khi ứng dụng được triển khai trên production, request và response thường bị can thiệp bởi một proxy server (có thể là reverse proxy, một Web Application Firewall, hay có thể là một API Gateway). Do đó việc am hiểu HTTP headers là một kỹ năng cần thiết để giải quyết vấn đề khi có lỗi xảy ra.

Như là một ví dụ, chúng ta hãy tìm hiểu cách hoạt động của header ETag một cách cơ bản nhất với Node.js server và cURL như client.

Demo Flow

Chuẩn bị Server với Node.js

Để đơn giản, tôi sẽ dùng Express và cấu hình ETag thông qua options của middleware express.static.

Khởi tạo project, cài đặt express, và mở server như câu lệnh quen thuộc bên dưới:

npm init
npm install express --save
node server.js # source code bên dưới

server.js

'use strict';
const express = require('express');
const app = express();
app.use(express.static('public', { etag: true }));
app.listen(8080, () => console.log('Your server is running on port 8080'));

public/index.html

<!DOCTYPE html>
<html>
    <head><title>ETag demo</title></head>
    <body>Hello from Express</body>
</html>

Kiểm tra với cURL

Khởi tạo một request
alt text

Server trả về response 200 với ETag kèm theo.

Gửi một request và sử dụng header If-None-Match: <ETag>
alt text

Server trả về response 304! :)

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Van Huong

2 bài viết.
13 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
18 0
(Ảnh) Tôi vừa đọc xong cuốn sách "The ObjectOriented Thought Process, 3rd Edition, Matt Weisfeld" nên muốn chia sẻ với mọi người. Ở đây tôi chỉ nê...
Van Huong viết 4 năm trước
18 0
Bài viết liên quan
White
17 8
GET request curl để thực hiện một GET request thì thật đơn giản bash $ curl http://google.com POST request giả lập form curl để thực hiện PO...
Trần Thành viết hơn 5 năm trước
17 8
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
2 bài viết.
13 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!