Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

Phương thức HTTP TRACE là gì?

Tìm hiểu về phương thức HTTP TRACE, cách hoạt động và lợi ích của nó trong việc gỡ lỗi API. Cũng tìm hiểu cách sử dụng Apidog, Postman, Swagger và JMeter để gửi và phân tích yêu cầu HTTP TRACE, và cách bảo vệ API của bạn khỏi cuộc tấn công theo dõi giữa các trang.

Minh Triết

Minh Triết

Updated on tháng 11 29, 2024

Bạn có bao giờ tự hỏi cách mà các API của bạn hoạt động ẩn sau không? Làm thế nào bạn biết chúng đang gửi và nhận dữ liệu đúng, hoặc nếu chúng đang bị chỉnh sửa bởi các trung gian dọc đường? Đó là lúc phương pháp HTTP TRACE trở nên hữu ích. Phương pháp HTTP TRACE là một loại yêu cầu HTTP đặc biệt thực hiện một bài kiểm tra vòng lặp tin nhắn dọc theo đường dẫn đến tài nguyên mục tiêu. Nó cho phép bạn nhìn thấy thông điệp chính xác mà người nhận cuối nhận được, loại trừ bất kỳ dữ liệu nhạy cảm nào, chẳng hạn như cookie hoặc thông tin xác thực.

Trong bài viết blog này, tôi sẽ cho bạn biết cách sử dụng phương pháp HTTP TRACE để gỡ lỗi các API của bạn như một chuyên gia. Tôi sẽ giải thích phương pháp HTTP TRACE là gì, cách nó hoạt động và những lợi ích mà nó mang lại. Tôi cũng sẽ chỉ cho bạn cách sử dụng Apidog.

💡
Apidog là một nền tảng tích hợp cho thiết kế API, gỡ lỗi, phát triển, mô phỏng và thử nghiệm, để gửi và phân tích các yêu cầu HTTP TRACE miễn phí.
button

Phương pháp HTTP TRACE là gì?

Phương pháp HTTP TRACE là một trong những phương pháp HTTP tiêu chuẩn, được định nghĩa trong đặc tả RFC 2616. Nó được sử dụng để thực hiện bài kiểm tra vòng lặp tin nhắn dọc theo đường dẫn đến tài nguyên mục tiêu, cung cấp một cơ chế gỡ lỗi hữu ích. Người nhận cuối của yêu cầu nên phản ánh tin nhắn đã nhận, loại trừ bất kỳ trường nào có thể chứa dữ liệu nhạy cảm, trở lại cho máy khách như là phần thân tin nhắn của phản hồi 200 (OK) với Content-Type là message/http. Người nhận cuối là máy chủ gốc hoặc máy chủ đầu tiên nhận được giá trị Max-Forwards là 0 trong yêu cầu.

Cú pháp của phương pháp HTTP TRACE như sau:

TRACE /path HTTP/1.1
Host: example.com

Yêu cầu không có thân, và đường dẫn là URI của tài nguyên mục tiêu. Yêu cầu có thể bao gồm một tiêu đề Max-Forwards, chỉ ra số lượng trung gian tối đa có thể chuyển tiếp yêu cầu. Nếu giá trị Max-Forwards là 0, yêu cầu không nên được chuyển tiếp, và phản hồi nên được tạo ra bởi máy chủ đầu tiên nhận được nó. Nếu giá trị Max-Forwards không được chỉ định, yêu cầu có thể được chuyển tiếp vô thời hạn, cho đến khi nó đến máy chủ gốc hoặc một trung gian không hỗ trợ phương pháp HTTP TRACE.

Phản hồi cho yêu cầu HTTP TRACE nên có mã trạng thái 200 (OK) và Content-Type là message/HTTP. Phần thân phản hồi nên chứa tin nhắn chính xác mà người nhận cuối nhận được, loại trừ bất kỳ dữ liệu nhạy cảm nào. Phản hồi cũng có thể bao gồm một tiêu đề Via, chỉ ra các trung gian đã xử lý yêu cầu. Tiêu đề Via nên có một hoặc nhiều mục, mỗi mục bao gồm tên giao thức, phiên bản giao thức, và định danh của trung gian. Ví dụ:

HTTP/1.1 200 OK
Content-Type: message/http
Via: 1.1 proxy1.example.com, 1.1 proxy2.example.com

TRACE /path HTTP/1.1
Host: example.com

Phản hồi cho thấy rằng yêu cầu đã được chuyển tiếp bởi hai proxy, proxy1.example.com và proxy2.example.com, trước khi đến người nhận cuối. Phần thân phản hồi phản ánh yêu cầu gốc, bao gồm đường dẫn và tiêu đề host.

Phương pháp HTTP TRACE hoạt động như thế nào?

Phương pháp HTTP TRACE hoạt động bằng cách gửi một yêu cầu đến tài nguyên mục tiêu và mong đợi một phản hồi chứa cùng một tin nhắn yêu cầu. Điều này cho phép máy khách xem tin nhắn chính xác mà máy chủ đã nhận được, và kiểm tra xem có bất kỳ chỉnh sửa hoặc lỗi nào dọc đường hay không.

Phương pháp HTTP TRACE có thể được sử dụng để gỡ lỗi nhiều khía cạnh khác nhau của hành vi API, chẳng hạn như:

  • Sự hiện diện và danh tính của các trung gian, chẳng hạn như proxy, cổng, hoặc tường lửa, có thể ảnh hưởng đến yêu cầu API và phản hồi. Tiêu đề Via có thể tiết lộ các trung gian đã xử lý yêu cầu và phiên bản giao thức của chúng.
  • Tính toàn vẹn và hợp lệ của các tiêu đề và thân yêu cầu và phản hồi API. Phần thân phản hồi có thể cho thấy tin nhắn chính xác mà máy chủ đã nhận được, và máy khách có thể so sánh nó với yêu cầu gốc để xem có bất kỳ thay đổi hoặc khác biệt nào không.
  • Hiệu suất và độ trễ của yêu cầu và phản hồi API. Máy khách có thể đo thời gian cần thiết để gửi yêu cầu và nhận phản hồi, và xác định bất kỳ tắc nghẽn hoặc trễ nào trong đường dẫn API.

Phương pháp HTTP TRACE cũng có thể được sử dụng để kiểm tra bảo mật và tuân thủ của API, chẳng hạn như:

  • Sự bảo vệ của dữ liệu nhạy cảm, chẳng hạn như cookie, thông tin xác thực, hoặc token, có thể bao gồm trong yêu cầu và phản hồi API. Máy chủ không nên phản ánh bất kỳ trường nào có thể chứa dữ liệu nhạy cảm, và máy khách không nên gửi bất kỳ nội dung nào trong yêu cầu, hoặc tạo ra bất kỳ trường nào có thể bao gồm dữ liệu nhạy cảm.
  • Hỗ trợ và thực thi của phương pháp HTTP TRACE bởi máy chủ và các trung gian. Máy chủ và các trung gian nên tuân thủ đặc tả RFC 2616, và phản hồi với mã trạng thái 200 (OK) và kiểu nội dung message/http. Nếu máy chủ hoặc một trung gian không hỗ trợ phương pháp HTTP TRACE, nó nên phản hồi với mã trạng thái 405 (Phương pháp không được phép) và một tiêu đề Allow mô tả các phương pháp được hỗ trợ. Nếu máy chủ hoặc một trung gian không cho phép phương pháp HTTP TRACE, nó nên phản hồi với mã trạng thái 403 (Cấm).

Những lợi ích của phương pháp HTTP TRACE là gì?

Phương pháp HTTP TRACE cung cấp một số lợi ích cho các nhà phát triển API, người thử nghiệm, và người tiêu dùng, chẳng hạn như:

  • Nó là một cách đơn giản và tiêu chuẩn để gỡ lỗi các API, mà không yêu cầu bất kỳ công cụ hoặc thư viện bổ sung nào. Nó được hỗ trợ bởi hầu hết các máy chủ và máy khách HTTP, và nó tuân theo đặc tả RFC 2616.
  • Nó là một phương pháp an toàn và idempotent, có nghĩa là nó không thay đổi trạng thái của máy chủ hoặc tài nguyên, và nó có thể được lặp lại mà không có bất kỳ tác dụng phụ nào. Nó cũng không thể được lưu cache, có nghĩa là nó luôn phản ánh trạng thái hiện tại của API.
  • Nó là một phương pháp mạnh mẽ và linh hoạt, có nghĩa là nó có thể được sử dụng để gỡ lỗi nhiều khía cạnh khác nhau của hành vi API, chẳng hạn như trung gian, tiêu đề, thân, hiệu suất, độ trễ, bảo mật và tuân thủ. Nó cũng có thể được sử dụng để kiểm tra các kịch bản và trường hợp sử dụng khác nhau, bằng cách thay đổi đường dẫn, máy chủ, Max-Forwards, và các tiêu đề khác.

Cách sử dụng Apidog để gửi và phân tích các yêu cầu HTTP TRACE?

Apidog là một nền tảng tích hợp cho thiết kế API, gỡ lỗi, phát triển, mô phỏng, và thử nghiệm, kết hợp Postman + Swagger + Mock + JMeter để giải quyết vấn đề đồng bộ dữ liệu giữa các hệ thống khác nhau sử dụng một bộ hệ thống và một bộ dữ liệu. Apidog là một bộ công cụ hoàn chỉnh kết nối toàn bộ vòng đời API, giúp các đội R&D thực hiện các phương pháp tốt nhất cho phát triển thiết kế API trước.

button

Apidog cung cấp một cách tiện lợi và dễ dàng để gửi và phân tích các yêu cầu HTTP TRACE, cũng như các phương pháp HTTP khác. Để sử dụng Apidog để gửi và phân tích các yêu cầu HTTP TRACE, bạn cần làm theo các bước sau:

  • Tạo một yêu cầu mới, hoặc mở một yêu cầu hiện có, nơi bạn muốn gửi và phân tích các yêu cầu HTTP TRACE của mình.
giao diện apidog
  • Trong trình chỉnh sửa API, chọn phương pháp TRACE từ menu thả xuống, và nhập đường dẫn của tài nguyên mục tiêu. Bạn cũng có thể nhập các tiêu đề host và Max-Forwards, nếu cần.
giao diện apidog
  • Nhấp vào nút Gửi để gửi yêu cầu HTTP TRACE đến tài nguyên mục tiêu, và chờ phản hồi.
giao diện apidog

Trong bảng phản hồi, bạn có thể thấy trạng thái

Cách bật hoặc tắt phương pháp HTTP TRACE trên máy chủ?

Tùy thuộc vào cấu hình máy chủ và chính sách bảo mật của bạn, bạn có thể muốn bật hoặc tắt phương pháp HTTP TRACE trên máy chủ của mình. Bật phương pháp HTTP TRACE cho phép bạn gỡ lỗi các API của mình dễ dàng hơn, nhưng nó cũng có thể tiết lộ một số thông tin có thể bị khai thác bởi những kẻ xấu. Tắt phương pháp HTTP TRACE ngăn chặn những cuộc tấn công như vậy, nhưng nó cũng giới hạn khả năng gỡ lỗi của bạn.

Quá trình bật hoặc tắt phương pháp HTTP TRACE khác nhau tùy thuộc vào loại và phiên bản của máy chủ của bạn. Dưới đây là một số ví dụ về cách thực hiện cho một số máy chủ phổ biến:

  • Apache: Bạn có thể sử dụng chỉ thị TraceEnable trong tệp httpd.conf để vô hiệu hóa hoặc giới hạn phương pháp TRACE. Ví dụ, để vô hiệu hóa hoàn toàn phương pháp TRACE, bạn có thể thêm dòng sau:
TraceEnable off

Để giới hạn phương pháp TRACE chỉ cho máy chủ địa phương, bạn có thể thêm dòng sau:

TraceEnable extended
  • Nginx: Bạn có thể sử dụng chỉ thị limit_except trong tệp nginx.conf để vô hiệu hóa hoặc giới hạn phương pháp TRACE. Ví dụ, để vô hiệu hóa hoàn toàn phương pháp TRACE, bạn có thể thêm khối sau:
location / {
  limit_except GET POST HEAD {
    deny all;
  }
}

Để giới hạn phương pháp TRACE chỉ cho máy chủ địa phương, bạn có thể thêm khối sau:

location / {
  limit_except GET POST HEAD TRACE {
    deny all;
  }
  if ($request_method = TRACE) {
    return 200;
  }
}

Kết luận

Phương pháp HTTP TRACE là một công cụ gỡ lỗi hữu ích cho các API, cho phép bạn thực hiện bài kiểm tra vòng lặp tin nhắn dọc theo đường dẫn đến tài nguyên mục tiêu. Nó có thể giúp bạn xác minh sự hiện diện và danh tính của các trung gian, tính toàn vẹn và hợp lệ của các tiêu đề và thân, hiệu suất và độ trễ của các yêu cầu và phản hồi, và bảo mật và tuân thủ của các API của bạn.

Để sử dụng phương pháp HTTP TRACE, bạn cần gửi một yêu cầu đến tài nguyên mục tiêu và mong đợi một phản hồi phản ánh cùng một tin nhắn yêu cầu, loại trừ bất kỳ dữ liệu nhạy cảm nào. Bạn có thể sử dụng nhiều công cụ và khung khác nhau để gửi và phân tích các yêu cầu HTTP TRACE, chẳng hạn như Apidog. Apidog cung cấp một cách tiện lợi và dễ dàng để gửi và phân tích các yêu cầu HTTP TRACE.

button