Bổ sung

Host Header

HTTP/1.1 - Bắt buộc phải có Host Header

Host Header là bắt buộc trong tất cả các HTTP/1.1 request messages. Nếu một request HTTP/1.1 thiếu Host header hoặc có nhiều hơn một Host header, server sẽ trả về lỗi 400 Bad Request.

GET /index.html HTTP/1.1
Host: example.com

HTTP/1.0 - Host Header không bắt buộc

Với HTTP/1.0, Host Header không phải là bắt buộc. Một request đơn giản như sau vẫn hoàn toàn hợp lệ:

GET /index.html HTTP/1.0

Tuy nhiên, việc thiếu Host header trong HTTP/1.0 có thể dẫn đến kết quả không mong muốn nếu server đích là một virtual host không có địa chỉ IP riêng

Host Header được tạo ra chủ yếu để giải quyết vấn đề thiếu hụt địa chỉ IPv4 và hỗ trợ virtual hosting - cho phép nhiều website được lưu trữ trên cùng một địa chỉ IP

Base64 usecase

  1. Sử dụng trong Authentication/Cookie Header (Mã hóa token, value)

  2. Sử dụng để gửi dữ liệu như hình ảnh, file để gửi qua HTTP request (vì không phải lúc nào byte đó cũng có thể hiển thị được --> encode với Base64)

  3. Sử dụng để embed hình ảnh trong source code HTML/CSS

Debug request

Là hành động modify request, test từng request bằng DevTools.

Đầu tiên DevTools trông như sau:

Trong đó ta có

  • Open in Sources panel: Đối với các request load các file script và file svg, ...

  • Open in new tab: Request lại endpoint đó trong tab mới của browser

  • Copy: Hiển thị submenu với nhiều tùy chọn sao chép như:

    • Copy URL

    • Copy as cURL command

    • Copy request headers

    • Copy response

    • Copy as Fetch/Node.js code

  • Replay XHR: Gửi lại yêu cầu XHR/AJAX với cùng tham số. (Ưu tiên sử dụng trong Debug API calls vì có thể test lại request mà không cần reload trang.

  • Block request URL: Chặn hoàn toàn URL cụ thể này khỏi việc được tải. Giúp test xem ứng dụng hoạt động như thế nào khi một resource bị thiếu hoặc lỗi.

  • Block request domain: Chặn toàn bộ domain của request này. Hữu ích để test scenario khi một service bên thứ ba không khả dụng.

  • Override headers: Ghi đè headers của request với giá trị tùy chỉnh. Điều này cho phép test API với các header khác nhau mà không cần thay đổi code.

  • Override content: Ghi đè nội dung phản hồi từ server với dữ liệu tùy chỉnh. Rất hữu ích để test frontend với các scenario dữ liệu khác nhau.

Ta có 2 options đó là Replay XHRCopy as Fetch/Node.js code được sử dụng để debug từng request 1 và quan sát chúng có hiện tượng gì bất thường.

Hoặc là để giải mã các request bị mã hóa:

Last updated

Was this helpful?