Bạn đã bao giờ tự hỏi một API có thể làm gì trước khi bạn bắt đầu sử dụng nó chưa? Bạn có muốn biết các phương thức, tiêu đề và tham số nào được hỗ trợ bởi một điểm cuối cụ thể không? Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng phương thức HTTP OPTIONS để khám phá bất kỳ API nào. Phương thức HTTP OPTIONS là một trong những phương thức ít được biết đến nhưng rất hữu ích của giao thức HTTP. Nó cho phép bạn yêu cầu thông tin về các tùy chọn giao tiếp có sẵn cho một tài nguyên nhất định. Nói cách khác, nó cho phép bạn hỏi một API nó có thể làm gì và làm như thế nào.
Sử dụng phương thức HTTP OPTIONS có thể tiết kiệm cho bạn rất nhiều thời gian và phiền hà khi làm việc với các API. Nó có thể giúp bạn tránh được lỗi, gỡ lỗi các vấn đề và tối ưu hóa các yêu cầu của bạn. Nó cũng có thể giúp bạn khám phá các tính năng hoặc chức năng mới mà bạn có thể không biết đến nếu không có nó.
Phương thức HTTP OPTIONS là gì?
Trước khi chúng ta đi sâu vào chi tiết cách sử dụng phương thức HTTP OPTIONS, hãy trước tiên hiểu nó là gì và nó hoạt động như thế nào. Phương thức HTTP OPTIONS là một trong chín phương thức tiêu chuẩn của HTTP, cùng với GET, POST, PUT, PATCH, DELETE, HEAD, TRACE, và CONNECT. Mỗi phương thức có một mục đích và ý nghĩa cụ thể, và chúng được sử dụng để thực hiện các hành động khác nhau trên một tài nguyên.
Phương thức HTTP OPTIONS được sử dụng để yêu cầu thông tin về các tùy chọn giao tiếp có sẵn cho một tài nguyên nhất định. Một tài nguyên có thể là bất kỳ thực thể nào có thể được xác định bởi một URI (Uniform Resource Identifier), chẳng hạn như một trang web, một hình ảnh, một tập tin, hoặc một điểm cuối API. Ví dụ, URI https://api.example.com/users/1 đại diện cho một tài nguyên tương ứng với một người dùng có ID là 1 trong API của example.com.
Khi bạn gửi một yêu cầu HTTP OPTIONS tới một tài nguyên, bạn đang thực chất hỏi máy chủ: “Tôi có thể làm gì với tài nguyên này?”. Máy chủ sẽ phản hồi với một phản hồi HTTP chứa thông tin về các tùy chọn có sẵn cho tài nguyên đó. Thông tin thường được cung cấp dưới dạng các tiêu đề HTTP, chẳng hạn như Allow, Accept, Content-Type, v.v.

Khi một trình duyệt web thực hiện một yêu cầu跨域请求, nó sẽ đầu tiên gửi một yêu cầu preflight bằng cách sử dụng phương thức HTTP OPTIONS đến máy chủ. Yêu cầu preflight được sử dụng để kiểm tra xem máy chủ có cho phép yêu cầu thực tế được thực hiện hay không. Máy chủ sẽ phản hồi với một phản hồi HTTP chứa các tiêu đề liên quan đến CORS, chẳng hạn như Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers, v.v. Nếu phản hồi preflight cho thấy yêu cầu thực tế được phép, trình duyệt sẽ tiếp tục gửi yêu cầu thực tế. Ngược lại, trình duyệt sẽ hủy bỏ yêu cầu và báo cáo lỗi.
Cách sử dụng phương thức http option
Phương thức HTTP OPTIONS được sử dụng để yêu cầu thông tin về các tùy chọn giao tiếp cho một URL hoặc máy chủ nhất định. Nó có thể được sử dụng để kiểm tra phương thức nào được phép, tiêu đề nào được hỗ trợ, hoặc nếu CORS đã được bật. Để sử dụng phương thức HTTP OPTIONS, bạn có thể gửi một yêu cầu với từ khóa OPTIONS theo sau là URL hoặc một dấu sao (*) để tham chiếu đến toàn bộ máy chủ. Ví dụ:
OPTIONS /index.html HTTP/1.1
OPTIONS * HTTP/1.1
Máy chủ sẽ phản hồi với một mã trạng thái và một tiêu đề Allow liệt kê các phương thức được cho phép. Nó cũng có thể bao gồm các tiêu đề khác như Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers, và Access-Control-Max-Age cho mục đích CORS. Ví dụ:
HTTP/1.1 200 OK
Allow: GET, HEAD, POST, OPTIONS
Access-Control-Allow-Origin: https://foo.example
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
Access-Control-Max-Age: 86400
Bạn có thể sử dụng một công cụ như Apidog để gửi yêu cầu OPTIONS và xem các tiêu đề phản hồi.
Cách gửi yêu cầu HTTP OPTIONS bằng cách sử dụng Apidog?
Giờ đây, khi chúng ta đã có hiểu biết cơ bản về phương thức HTTP OPTIONS là gì và nó hoạt động như thế nào, hãy xem chúng ta có thể sử dụng nó để khám phá bất kỳ API nào. Cho mục đích này, chúng tôi sẽ sử dụng Apidog, một công cụ dựa trên web cho phép bạn tương tác với bất kỳ API nào một cách đơn giản và trực quan. Bạn có thể sử dụng Apidog để gửi yêu cầu, xem phản hồi, và kiểm tra tiêu đề. Bạn cũng có thể sử dụng nó để tạo các đoạn mã, tài liệu, và các trường hợp kiểm tra cho bất kỳ API nào.
Để gửi một yêu cầu HTTP OPTIONS bằng Apidog, bạn cần làm theo các bước sau:
Bước 1: Mở Apidog và tạo một yêu cầu mới.

Bước 2: Chọn phương thức OPTIONS từ menu xổ xuống phương thức. Điều này sẽ cho Apidog biết gửi một yêu cầu HTTP OPTIONS đến URL mà bạn đã nhập.

Bước 3: Nhập URI của tài nguyên mà bạn muốn khám phá vào trường nhập URI và nhấn nút Gửi hoặc nhấn Ctrl+Enter. Điều này sẽ gửi yêu cầu đến máy chủ và hiển thị phản hồi trong phần phản hồi.

Kiểm tra các tiêu đề và nội dung phản hồi để xem thông tin về các tùy chọn giao tiếp có sẵn cho tài nguyên. Bạn cũng có thể sử dụng trường nhập bộ lọc để tìm kiếm các tiêu đề hoặc giá trị cụ thể.
Bạn có thể nhận được thông tin gì từ phản hồi HTTP OPTIONS?
Khi bạn gửi một yêu cầu HTTP OPTIONS đến một tài nguyên, bạn có thể nhận được rất nhiều thông tin về các tùy chọn giao tiếp có sẵn cho tài nguyên đó. Thông tin thường được cung cấp dưới dạng các tiêu đề HTTP, chẳng hạn như Allow, Accept, Content-Type, v.v. Dưới đây là một số tiêu đề thường gặp và ý nghĩa của chúng:
- Allow: Tiêu đề này liệt kê các phương thức HTTP được phép cho tài nguyên. Ví dụ, nếu phản hồi chứa Allow: GET, POST, HEAD, điều đó có nghĩa là bạn có thể sử dụng các phương thức GET, POST hoặc HEAD để tương tác với tài nguyên.
- Accept: Tiêu đề này liệt kê các loại phương tiện mà tài nguyên chấp nhận. Ví dụ, nếu phản hồi chứa Accept: application/json, application/xml, điều đó có nghĩa là bạn có thể yêu cầu tài nguyên dưới định dạng JSON hoặc XML.
- Content-Type: Tiêu đề này chỉ ra loại phương tiện của nội dung phản hồi. Ví dụ, nếu phản hồi chứa Content-Type: application/json, điều đó có nghĩa là nội dung phản hồi ở định dạng JSON.
- Access-Control-Allow-Origin: Tiêu đề này chỉ ra các nguồn nào được phép truy cập vào tài nguyên. Ví dụ, nếu phản hồi chứa Access-Control-Allow-Origin: *, điều đó có nghĩa là bất kỳ nguồn nào cũng có thể truy cập vào tài nguyên. Nếu phản hồi chứa Access-Control-Allow-Origin: https://example.com, điều đó có nghĩa là chỉ nguồn https://example.com mới có thể truy cập vào tài nguyên.
- Access-Control-Allow-Methods: Tiêu đề này chỉ ra các phương thức nào được phép cho tài nguyên. Ví dụ, nếu phản hồi chứa Access-Control-Allow-Methods: GET, POST, OPTIONS, điều đó có nghĩa là bạn có thể sử dụng các phương thức GET, POST hoặc OPTIONS để truy cập vào tài nguyên.
- Access-Control-Allow-Headers: Tiêu đề này chỉ ra các tiêu đề nào được phép cho tài nguyên. Ví dụ, nếu phản hồi chứa Access-Control-Allow-Headers: Content-Type, Authorization, điều đó có nghĩa là bạn có thể sử dụng các tiêu đề Content-Type hoặc Authorization để truy cập vào tài nguyên.
- Access-Control-Max-Age: Tiêu đề này chỉ ra thời gian mà phản hồi preflight có thể được lưu cache bởi trình duyệt. Ví dụ, nếu phản hồi chứa Access-Control-Max-Age: 86400, điều đó có nghĩa là trình duyệt có thể cache phản hồi preflight trong 86400 giây (24 giờ).
Đây là một số tiêu đề thường gặp mà bạn có thể nhận được từ một phản hồi HTTP OPTIONS. Có thể có các tiêu đề khác cụ thể với API hoặc tài nguyên mà bạn đang khám phá. Bạn có thể sử dụng Apidog để kiểm tra tất cả các tiêu đề và giá trị của chúng, và tìm hiểu thêm về chúng.
Kết luận
Trong bài viết blog này, tôi đã chỉ cho bạn cách sử dụng phương thức HTTP OPTIONS để khám phá bất kỳ API nào. Phương thức HTTP OPTIONS là một công cụ mạnh mẽ và hữu ích có thể giúp bạn khám phá các khả năng và tính năng của bất kỳ API nào. Bằng cách sử dụng phương thức HTTP OPTIONS, bạn có thể tiết kiệm thời gian và giảm bớt phiền hà khi làm việc với các API. Bạn cũng có thể học hỏi những điều mới và tối ưu hóa các yêu cầu của mình.
Tôi cũng đã chỉ cho bạn cách sử dụng Apidog, một công cụ dựa trên web cho phép bạn tương tác với bất kỳ API nào một cách đơn giản và trực quan.