Tra cứu tiêu đề HTTP

5 trên 2 xếp hạng

Tra cứu tiêu đề HTTP là công cụ miễn phí giúp lấy toàn bộ tiêu đề phản hồi HTTP mà một URL trả về cho yêu cầu GET thông thường.

Tiêu đề phản hồi HTTP là gì?

Tiêu đề phản hồi HTTP là các siêu dữ liệu mà máy chủ web gửi trước phần nội dung phản hồi, chẳng hạn như trang HTML, hình ảnh hoặc tài liệu JSON. Chúng cho máy khách biết cách diễn giải, lưu vào bộ nhớ đệm, chuyển hướng hoặc bảo mật phản hồi.

Phản hồi HTTP/1.x thường bắt đầu bằng dòng trạng thái HTTP, sau đó là các tiêu đề. Trong HTTP/2 và HTTP/3, trạng thái tương đương được truyền qua tiêu đề giả :status. Về mặt kỹ thuật, dòng trạng thái HTTP/1.x tách biệt với các tiêu đề, nhưng thường được hiển thị cùng vì nó cho biết yêu cầu có thành công hay không. Trạng thái 200 nghĩa là tài nguyên đã được trả về, 301 hoặc 302 cho biết có chuyển hướng, 404 nghĩa là không tìm thấy tài nguyên, còn 500 cho biết lỗi phía máy chủ.

Tiêu đề có thể đến từ máy chủ gốc, proxy ngược hoặc mạng phân phối nội dung như Cloudflare. Một số tiêu đề được thêm hoặc xóa khi phản hồi đi qua các hệ thống này, vì vậy kết quả có thể phản ánh nhiều thành phần hơn riêng ứng dụng đã tạo ra trang.

Cách tra cứu tiêu đề HTTP như thế nào?

Nhập đầy đủ URL cần kiểm tra, bao gồm cả lược đồ, chẳng hạn như https://www.example.com/account. Công cụ sẽ gửi một yêu cầu GET thông thường từ máy chủ của mình và trả về các tiêu đề HTTP nhận được từ URL đó.

Để so sánh chính xác các tiêu đề phản hồi, hãy dùng đúng từng biến thể URL mà bạn muốn kiểm tra. Tiêu đề của http://example.com, https://example.com và https://www.example.com có thể khác nhau vì mỗi địa chỉ có thể dùng quy tắc chuyển hướng, bộ nhớ đệm và cấu hình máy chủ riêng.

Cú pháp URL cũng ảnh hưởng đến yêu cầu:

  • Khoảng trắng không phải là ký tự URL thô hợp lệ và thường phải được mã hóa phần trăm, phổ biến là %20 trong đường dẫn.
  • ? mở đầu thành phần truy vấn, còn & và = thường được dùng trong kiểu mã hóa truy vấn theo biểu mẫu, nhưng không đảm nhiệm các vai trò đó trong mọi chuỗi truy vấn.
  • Tên miền có dấu và tên miền dùng ký tự ngoài bảng chữ cái Latin được xử lý bằng IDNA, rồi biểu diễn dưới dạng nhãn A ASCII, thường bắt đầu bằng xn--. Trong khi đó, ký tự trong đường dẫn thường được mã hóa thành byte UTF-8 rồi mã hóa phần trăm.
  • Phân đoạn bắt đầu bằng # do trình duyệt xử lý và không được gửi trong yêu cầu HTTP.
  • Không có giới hạn độ dài URL tối đa áp dụng chung. Máy chủ, proxy hoặc ứng dụng có thể từ chối URL quá dài.

Đọc kết quả tiêu đề HTTP như thế nào?

Hãy kiểm tra các tiêu đề liên quan đến sự cố bạn đang tìm hiểu. Tên tiêu đề không phân biệt chữ hoa chữ thường, nhưng cú pháp trong giá trị của chúng có thể phân biệt chữ hoa chữ thường.

Trường kết quả Thông tin cho biết
Location Đích đến của một chuyển hướng. Trường này thường đi kèm trạng thái 3xx.
Content-Type Loại phương tiện được trả về, chẳng hạn như text/html, application/json hoặc image/png.
Content-Length Kích thước được khai báo của phần nội dung phản hồi, tính bằng byte, nếu máy chủ cung cấp. Phản hồi được chia thành từng khối hoặc tạo động có thể không có trường này.
Cache-Control and Expires Các chỉ thị lưu vào bộ nhớ đệm và thời điểm hết hạn của phản hồi, nếu được cung cấp.
Age Tuổi được tính toán của phản hồi trong bộ nhớ đệm kể từ khi phản hồi được tạo hoặc xác thực lần cuối, có thể bao gồm thời gian nằm trong các bộ nhớ đệm phía trước, tính bằng giây.
ETag and Last-Modified Các giá trị xác thực mà máy khách có thể dùng để kiểm tra xem nội dung trong bộ nhớ đệm đã thay đổi hay chưa.
Set-Cookie Yêu cầu lưu cookie, bao gồm các thuộc tính như Secure, HttpOnly và SameSite.
Content-Security-Policy Các quy tắc dành cho trình duyệt, giới hạn những tập lệnh, kiểu, khung và tài nguyên khác mà trang được phép tải.
Strict-Transport-Security Chỉ thị yêu cầu các trình duyệt tương thích sử dụng HTTPS trong khoảng thời gian được quy định.

Các tiêu đề khác có thể dành riêng cho từng ứng dụng. Ví dụ, Access-Control-Allow-Origin kiểm soát những nguồn nào được phép đọc phản hồi thông qua yêu cầu khác nguồn của trình duyệt. Tiêu đề Server có thể nêu tên phần mềm hoặc proxy, nhưng không phải là bằng chứng đáng tin cậy về nền tảng bên dưới vì quản trị viên có thể thay đổi hoặc xóa tiêu đề này.

Các tình huống khắc phục sự cố thường gặp

Sự cố chuyển hướng là một lý do phổ biến để kiểm tra tiêu đề. Giả sử https://example.com/old-page trả về trạng thái 301 cùng với Location: https://example.com/new-page. Điều đó có nghĩa là máy chủ đang yêu cầu máy khách truy cập địa chỉ mới. Kiểm tra lần lượt từng đích đến có thể giúp phát hiện vòng lặp chuyển hướng hoặc sự thay đổi ngoài dự kiến giữa HTTP và HTTPS.

Nếu một trang phía sau Cloudflare hoặc CDN khác hiển thị nội dung cũ, hãy kiểm tra Cache-Control, Age, ETag và mọi tiêu đề bộ nhớ đệm riêng của nhà cung cấp. Giá trị Age lớn thể hiện tuổi được tính toán của phản hồi trong bộ nhớ đệm, có thể bao gồm thời gian nằm trong các bộ nhớ đệm phía trước, chứ không phải khoảng thời gian một máy trung gian cụ thể đã lưu phản hồi. Giá trị này không chứng minh rằng mọi bộ nhớ đệm theo khu vực đều đang giữ cùng một phiên bản.

Khi API hoạt động trong tập lệnh phía máy chủ nhưng lỗi trên trình duyệt, hãy kiểm tra Content-Type và các tiêu đề phản hồi CORS, bao gồm Access-Control-Allow-Origin. Một điểm cuối JSON trả về text/html có thể thực chất đang cung cấp trang lỗi hoặc màn hình đăng nhập. Nếu thiếu quyền truy cập khác nguồn, trình duyệt có thể chặn quyền truy cập ngay cả khi máy chủ trả về trạng thái 200.

Tiêu đề cũng có thể hỗ trợ kiểm tra một trang web dường như không truy cập được. Phản hồi 503 thường hướng đến lỗi tạm thời ở máy chủ hoặc hệ thống phía trước, còn 404 nghĩa là không tìm thấy đường dẫn được yêu cầu. Tuy vậy, tiêu đề không thể chẩn đoán mọi sự cố. Nếu quá trình phân giải DNS, kết nối TCP hoặc thương lượng TLS thất bại trước khi có phản hồi HTTP, có thể sẽ không có tiêu đề phản hồi để kiểm tra. Ping cung cấp một phép kiểm tra kết nối riêng, còn Trình kiểm tra HTTP/2 có thể kiểm tra khả năng hỗ trợ giao thức.

Vì sao kết quả tiêu đề đúng vẫn có vẻ không chính xác?

Kết quả chính xác vẫn có thể khác với những gì trình duyệt hiển thị vì bộ nhớ đệm, bản ghi DNS và ngữ cảnh yêu cầu có thể đưa hai yêu cầu đến các phản hồi khác nhau. Việc tra cứu được thực hiện trên máy chủ, nên yêu cầu có thể đến một nút CDN khác hoặc phân giải bản ghi DNS vừa thay đổi sớm hơn hay muộn hơn mạng cục bộ của bạn.

Trình duyệt cũng gửi cookie, loại nội dung được chấp nhận, ngôn ngữ và trình xác thực bộ nhớ đệm của riêng mình. Vì vậy, một trang WordPress khi đã đăng nhập có thể trả về quy tắc lưu vào bộ nhớ đệm khác với yêu cầu ẩn danh từ máy chủ. Hệ thống định tuyến theo vị trí địa lý và quản lý bot cũng có thể thay đổi phản hồi tùy theo mạng nguồn hoặc tiêu đề yêu cầu.

Sau khi thay đổi DNS, các trình phân giải có bộ nhớ đệm vẫn có thể tiếp tục dùng bản ghi trước đó cho đến khi hết thời gian tồn tại. Khi lưu lượng đã đến máy chủ mới, một đối tượng CDN cũ hoặc bộ nhớ đệm của trình duyệt vẫn có thể trả về nội dung trước đó. Hãy kiểm tra riêng máy chủ đã phân giải, xóa bộ nhớ đệm khi phù hợp và so sánh chính xác từng URL thay vì cho rằng mọi tên máy chủ đều dùng cùng một cấu hình.

Câu hỏi thường gặp

Công cụ này có hiển thị tiêu đề yêu cầu không?

Không. Công cụ lấy các tiêu đề phản hồi mà URL trả về cho một yêu cầu GET thông thường. Tiêu đề yêu cầu là siêu dữ liệu được gửi đến máy chủ. Để kiểm tra đầy đủ, bạn cần dùng riêng công cụ dành cho nhà phát triển của trình duyệt, nhật ký máy chủ hoặc trình khách dòng lệnh.

URL nhập vào công cụ có được giữ riêng tư không?

Việc tra cứu được thực hiện trên máy chủ. Dữ liệu bạn nhập được truyền đến máy chủ đó qua HTTPS và không được lưu trữ. Tránh nhập URL chứa mật khẩu, mã thông báo truy cập hoặc tham số truy vấn nhạy cảm vì máy chủ đích cũng sẽ nhận các giá trị này khi yêu cầu được gửi đi.

Tiêu đề HTTP có giải thích được cảnh báo chứng chỉ không?

Thông thường, chỉ riêng tiêu đề HTTP là không đủ. Kết nối TLS được thiết lập trước khi phản hồi HTTP được gửi, nên chứng chỉ hết hạn, tên máy chủ không khớp hoặc tổ chức phát hành không đáng tin cậy có thể khiến không có tiêu đề nào được trả về. Nếu trình duyệt hiện cảnh báo trước khi trang tải, hãy kiểm tra riêng chứng chỉ và chuỗi chứng chỉ.

Vì sao kết quả trả về nhiều tiêu đề Set-Cookie?

Một phản hồi có thể đặt nhiều cookie và mỗi cookie dùng một trường Set-Cookie riêng. Không gộp chúng như thể đó là danh sách phân tách bằng dấu phẩy, vì ngày hết hạn của cookie cũng có thể chứa dấu phẩy. Hãy kiểm tra riêng miền, đường dẫn và thuộc tính bảo mật của từng cookie.

Tôi có thể so sánh kết quả với curl không?

Có. Lệnh như curl -D - https://example.com/ -o /dev/null sẽ in các tiêu đề phản hồi và bỏ qua phần nội dung. Phiên bản Curl, tiêu đề yêu cầu, cài đặt chuyển hướng và vị trí mạng có thể tạo ra kết quả khác nhau. Vì vậy, hãy đối chiếu các điều kiện đó trước khi xem sự khác biệt là lỗi máy chủ.

Công cụ phổ biến