Có bạn học viên hỏi mình:
Mình nghĩ là chắc nhiều bạn cũng có thắc mắc này nên mình viết 1 bài ngắn để giải thích.
Về cơ bản status code 3xx thể hiện rằng client cần phải có thêm 1 action để complete request, tuy nhiên 304 lại hơi khác 1 tí. Nó thể hiện rằng “cái kết quả lần request này và lần request trước không khác nhau đâu vì server không thay đổi gì cả, kết quả sẽ được lấy từ cache”. Và nó chỉ happen với GET request.
Nếu client mà muốn, lần nào run cũng lấy cái mới, không muốn lấy cache, thì chỉ cần thêm vào request header cache-control=no-cache
. Điều này khá dễ khi dùng các tool test như Postman hay JMeter.
Ở trong browser, để thay đổi cache-control
thì chỉ cần check/uncheck option Disable cache.
Như bạn thấy trên hình, khi disable cache, thì status code là 200. Và ngược lại, nếu để cache thì status code là 304.
Việc nhận được status code 304 thay vì 200 mình nghĩ là hoàn toàn bình thường, nếu bạn test api mà muốn nhận được 200 thì set cache-control là xong.
Hết bài rồi, chào bạn. 😀