Nếu bạn đã từng tìm hiểu về các mã trạng thái HTTP, bạn có thể đã thấy những mã quen thuộc như 200 OK, 301 Moved Permanently, hoặc 404 Not Found. Nhưng thỉnh thoảng, một mã lạ lại xuất hiện như 305 Use Proxy.
Mã trạng thái này không thường xuyên xuất hiện trong thực tế. Trên thực tế, nó hiếm đến mức nhiều trình duyệt hiện đại thậm chí không còn hỗ trợ nó nữa. Nhưng nếu bạn đang làm việc với các hệ thống cũ, gỡ lỗi API hoặc proxy, việc hiểu 305 có thể rất giá trị.
Trong bài đăng blog này, chúng ta sẽ khám phá ý nghĩa của mã trạng thái 305 Use Proxy, cách nó được thiết kế để hoạt động, lý do suy giảm trong việc sử dụng và những ảnh hưởng của nó trong môi trường web hiện đại. Nếu bạn cần mô phỏng các phản hồi liên quan đến proxy như 305, bạn không cần phải cấu hình các thiết lập máy chủ phức tạp. Với Apidog, bạn có thể dễ dàng tạo phản hồi 305 giả, kiểm tra hành vi proxy và xác thực các yêu cầu API chỉ trong vài cú nhấp chuột. Phần tốt nhất? Bạn có thể tải xuống miễn phí và bắt đầu thử nghiệm ngay hôm nay.
Bây giờ, hãy cùng phân tích chính xác ý nghĩa của 305 Use Proxy, tại sao nó tồn tại, tại sao nó bị loại bỏ và làm thế nào bạn vẫn có thể kiểm tra và học hỏi từ nó.
Mã trạng thái HTTP 305 Use Proxy là gì?
Mã trạng thái 305 Use Proxy là một phần của giao thức HTTP/1.1 được định nghĩa trong RFC 2616. Nó chỉ ra rằng tài nguyên được yêu cầu phải được truy cập thông qua proxy được chỉ định trong tiêu đề Location của phản hồi.
Mã trạng thái 305 Use Proxy là một phản hồi HTTP/1.1 cho khách hàng biết:
"Bạn không thể truy cập tài nguyên này trực tiếp. Thay vào đó, bạn phải kết nối thông qua proxy được chỉ định trong tiêu đề phản hồi."
Đây là giao diện của một phản hồi 305 lý thuyết:
HTTP/1.1 305 Use Proxy
Location: <http://proxy.example.com:8080>Điểm mấu chốt ở đây là tiêu đề Location. Nó chỉ định proxy nào mà client nên sử dụng để tiếp cận tài nguyên. Điều này được thiết kế để chỉ dẫn rõ ràng client đến các máy chủ proxy trung gian có thể được yêu cầu để truy cập các vị trí mạng nhất định hoặc xử lý một số chức năng đặc biệt.
Ví dụ, nếu một tài nguyên nằm sau một proxy của công ty hoặc một dịch vụ lưu trữ bộ nhớ đệm, một máy chủ có thể yêu cầu client đi qua proxy đó cho các yêu cầu sau này.
Nguồn gốc của 305 và lý do nó được giới thiệu
Khi đặc tả HTTP/1.1 đang được phát triển, web đang phát triển nhanh chóng, và các proxy là thiết yếu cho bảo mật, bộ nhớ đệm và kiểm soát truy cập.
Ý tưởng rất đơn giản:
- Máy chủ có thể nói, “Tài nguyên này chỉ có sẵn nếu bạn kết nối qua một proxy.”
- Máy khách sẽ tuân thủ hướng dẫn và định tuyến lại yêu cầu của họ thông qua proxy.
Vào thời điểm đó, đây dường như là một cách thông minh để thực thi việc sử dụng proxy cho một số tài nguyên nhất định.
305 Use Proxy hoạt động như thế nào?
Đây là một ví dụ từng bước về cách 305 được cho là sẽ hoạt động:
Client yêu cầu một tài nguyên trực tiếp:
GET /secret-data HTTP/1.1
Host: example.comMáy chủ phản hồi với 305 Use Proxy:
HTTP/1.1 305 Use Proxy
Location: <http://proxy.example.com:8080>Client gửi lại yêu cầu nhưng lần này thông qua máy chủ proxy được chỉ định.
Luồng này, về lý thuyết, cho phép các máy chủ thực thi truy cập chỉ qua proxy mà không cần cấu hình client thủ công. Không giống như các chuyển hướng khác như 301 hoặc 302 chỉ đến các vị trí tài nguyên thay thế, 305 đặc biệt hướng dẫn client định tuyến yêu cầu qua một proxy.
Tại sao 305 Use Proxy tồn tại?
Trở lại những ngày đầu của web, việc quản lý các tuyến mạng và proxy ít tự động và thân thiện với người dùng hơn so với ngày nay.
305 được giới thiệu để cung cấp cho các máy chủ một cách trực tiếp để thực thi việc sử dụng proxy, giúp các tổ chức kiểm soát luồng lưu lượng truy cập, thực thi các chính sách bộ nhớ đệm hoặc định tuyến các yêu cầu thông qua các dịch vụ lọc.
Ý tưởng là cung cấp một phản hồi tiêu chuẩn mà các client có thể hiểu và tuân theo để thực hiện proxying một cách chính xác.
Tại sao 305 bị loại bỏ (Lo ngại về bảo mật)
Thật không may, lý thuyết và thực tế đã không đi đôi với nhau ở đây.
Mã trạng thái 305 Use Proxy đã chính thức bị loại bỏ vì những vấn đề bảo mật lớn:
- Một máy chủ độc hại có thể gửi phản hồi 305 trỏ đến một proxy giả mạo.
- Proxy sau đó có thể chặn, ghi lại hoặc sửa đổi tất cả lưu lượng truy cập của client.
- Điều này mở ra cánh cửa cho các cuộc tấn công man-in-the-middle (MITM).
Vì những rủi ro này, các trình duyệt như Chrome, Firefox và Internet Explorer cuối cùng đã ngừng hỗ trợ 305 hoàn toàn.
Ngày nay, việc dựa vào cơ chế này được coi là không an toàn.
Tại sao 305 Use Proxy được coi là lỗi thời?
Mặc dù 305 có một mục đích dường như hữu ích, nhưng ngày nay nó hiếm khi được sử dụng vì nhiều lý do:
- Rủi ro bảo mật: Cho phép máy chủ chỉ định proxy có thể tạo điều kiện cho việc chuyển hướng độc hại, các cuộc tấn công man-in-the-middle hoặc vi phạm quyền riêng tư.
- Vấn đề hỗ trợ trình duyệt: Các trình duyệt lớn như Chrome, Firefox và Safari đã ngừng hỗ trợ hoặc vô hiệu hóa việc xử lý tự động các phản hồi 305.
- Cơ chế proxy tốt hơn: Mạng hiện đại sử dụng các proxy đã cấu hình, VPN hoặc các proxy trong suốt được quản lý bên ngoài các phản hồi HTTP.
- Thiếu nhu cầu: Các proxy thường được thiết lập ở cấp độ client hoặc mạng, không phải do máy chủ tự động chỉ định.
Vì những lý do này, đặc tả HTTP/1.1 (RFC 7231) hiện không khuyến khích sử dụng 305, và nhiều client bỏ qua nó.
Phản hồi 305 trông như thế nào?
Một phản hồi 305 điển hình chứa trạng thái và tiêu đề Location với URL proxy, chẳng hạn như:
textHTTP/1.1 305 Use Proxy Location: <http://proxy.example.com:8080/> Content-Length: 0
Điều này hướng dẫn client sử dụng http://proxy.example.com:8080/ làm proxy để truy cập tài nguyên được yêu cầu.
305 so với các mã trạng thái chuyển hướng khác
Hiểu 305 trong mối quan hệ với các mã chuyển hướng khác giúp làm rõ vai trò độc đáo của nó:
| Mã trạng thái | Mô tả | Hành động của Client |
|---|---|---|
| 301 Moved Permanently | Chuyển hướng vĩnh viễn đến một tài nguyên mới | Chuyển hướng trực tiếp đến URL mới |
| 302 Found | Chuyển hướng tạm thời | Chuyển hướng trực tiếp (GET hoặc phương thức gốc) |
| 303 See Other | Chuyển hướng và buộc phương thức GET | Chuyển hướng đến tài nguyên GET |
| 305 Use Proxy | Sử dụng proxy được chỉ định trong tiêu đề Location | Định tuyến yêu cầu qua proxy |
| 307 Temporary Redirect | Chuyển hướng tạm thời, bảo toàn phương thức | Chuyển hướng đến vị trí mới với cùng phương thức |
Trong khi 301, 302, 303 và 307 chuyển hướng client trực tiếp đến các URL khác, 305 đặc biệt thực thi một đường dẫn proxy.
Ví dụ thực tế về 305 Use Proxy
Mặc dù các trình duyệt đã ngừng hỗ trợ, một số môi trường cũ đã từng sử dụng 305.
- Mạng nội bộ của công ty: Nơi một số tài nguyên nhạy cảm phải được truy cập thông qua proxy của công ty.
- Mạng học thuật: Các thư viện sử dụng proxy để hạn chế quyền truy cập vào nội dung được cấp phép.
- Cổng API thử nghiệm: Một số framework API đã thử nghiệm việc sử dụng 305 để thực thi proxy.
Tuy nhiên, ngày nay, hầu hết các trường hợp sử dụng này đều dựa vào cấu hình proxy ở cấp độ mạng hoặc client, chứ không phải phản hồi HTTP.
Các lựa chọn thay thế hiện đại cho 305 Use Proxy
Vì 305 hầu hết đã bị loại bỏ, việc sử dụng proxy ngày nay được xử lý bởi:
- Cài đặt proxy của trình duyệt hoặc hệ thống: Được cấu hình thủ công hoặc thông qua các tập lệnh (tệp PAC).
- Proxy trong suốt: Vô hình đối với client, chặn các yêu cầu trên mạng.
- VPN hoặc tường lửa mạng: Điều chỉnh định tuyến lưu lượng truy cập mà không cần hướng dẫn ở cấp độ HTTP.
Những phương pháp này an toàn và linh hoạt hơn so với các proxy được thực thi bằng HTTP với 305.
Cách Proxy hoạt động trong giao tiếp HTTP
Để hiểu rõ hơn về 305, hãy lùi lại một bước và xem xét proxy làm gì:
- Forward proxies → Nằm giữa client và internet. Được sử dụng để lưu trữ bộ nhớ đệm, lọc hoặc ẩn danh.
- Reverse proxies → Nằm giữa internet và máy chủ. Được sử dụng để cân bằng tải, chấm dứt SSL hoặc bảo mật.
305 được dùng để thực thi forward proxy. Thay vì client chọn một proxy, máy chủ sẽ chỉ định nó.
Tại sao các nhà phát triển hiếm khi gặp 305 ngày nay
Trong thực tế, hầu hết các nhà phát triển sẽ không bao giờ thấy phản hồi 305 trong các dự án hiện đại vì:
- Các trình duyệt không hỗ trợ nó.
- Các API không sử dụng nó.
- Các quản trị viên mạng cấu hình proxy bên ngoài HTTP.
Mặc dù vậy, bạn có thể gặp 305 trong các tài liệu cũ, cơ sở mã cũ hoặc các cuộc thảo luận học thuật.
Cách xử lý phản hồi 305 với tư cách là nhà phát triển
Nếu bạn gặp phản hồi 305, ví dụ, trong quá trình tích hợp hệ thống cũ hoặc các trường hợp đặc biệt, đây là những gì bạn nên làm:
- Hãy thận trọng khi chấp nhận chuyển hướng 305 để ngăn chặn rủi ro bảo mật.
- Xác thực tiêu đề
Locationmột cách cẩn thận. - Cân nhắc bỏ qua các phản hồi 305 nếu client hoặc trình duyệt của bạn không hỗ trợ chúng.
- Sử dụng cấu hình proxy mạng hoặc trình duyệt để quản lý việc sử dụng proxy thay thế.
- Sử dụng các công cụ như Apidog để kiểm tra và gỡ lỗi các phản hồi 305 trong API hoặc yêu cầu mạng.
305 Use Proxy và kiểm thử API
Nếu bạn là nhà phát triển hoặc người kiểm thử API, bạn có thể tự hỏi:
"Tại sao tôi phải quan tâm đến một mã trạng thái đã bị loại bỏ?"
Câu hỏi hay! Mặc dù 305 không còn thực tế ngày nay, nó vẫn dạy những bài học quan trọng về:
- Hành vi của Proxy trong HTTP.
- Rủi ro bảo mật của định tuyến do máy chủ kiểm soát.
- Cách client xử lý các mã trạng thái không được hỗ trợ (chúng nên bỏ qua hoặc từ chối).
Đối với các kịch bản kiểm thử, bạn vẫn có thể muốn mô phỏng phản hồi 305 để xem client của bạn phản ứng như thế nào.
Kiểm thử 305 Use Proxy với Apidog

Apidog là một công cụ tuyệt vời giúp bạn xử lý tất cả các loại mã trạng thái HTTP, bao gồm cả mã 305 hiếm gặp.
Đây là lý do tại sao Apidog có ý nghĩa đối với việc kiểm thử và gỡ lỗi 305:
- Gửi yêu cầu và ghi lại các tiêu đề phản hồi HTTP chi tiết.
- Xem tiêu đề
Locationđể xác định URL proxy. - Kiểm soát các yêu cầu tiếp theo để kiểm tra hành vi proxy.
- Tự động hóa các kiểm thử, đảm bảo API hoạt động chính xác với các hướng dẫn proxy.
Với Apidog, bạn không cần phải thiết lập một máy chủ proxy thực tế, chỉ cần mô phỏng nó và xem điều gì xảy ra. Tải xuống Apidog miễn phí để có được trải nghiệm thực tế với các phản hồi HTTP phức tạp, giúp quy trình làm việc của bạn hiệu quả hơn.
Ý nghĩa SEO của 305 Use Proxy
Từ góc độ SEO, 305 không còn liên quan ngày nay vì các trình thu thập thông tin của công cụ tìm kiếm không hỗ trợ nó.
Nếu máy chủ của bạn vô tình trả về 305, các trình thu thập thông tin có thể sẽ coi đó là một lỗi và ngừng lập chỉ mục trang.
Đây là một lý do khác tại sao bạn nên tránh sử dụng 305 trong môi trường sản xuất.
Các phương pháp hay nhất để xử lý yêu cầu proxy
Vì 305 đã bị loại bỏ, bạn nên làm gì thay thế?
- Cấu hình proxy ở cấp độ mạng hoặc client (không phải qua HTTP).
- Sử dụng quy tắc tường lửa hoặc VPN để thực thi định tuyến an toàn.
- Tài liệu hóa các yêu cầu proxy cho client API.
- Sử dụng reverse proxy (như Nginx, HAProxy) cho các triển khai hiện đại.
Ý nghĩa bảo mật của việc sử dụng 305
Lý do chính khiến việc sử dụng 305 bị loại bỏ nằm ở những cân nhắc về bảo mật:
- Các client tự động tuân theo 305 có thể bị buộc đi qua các proxy độc hại.
- Quyền riêng tư và tính toàn vẹn dữ liệu có thể bị xâm phạm.
- Do đó, các trình duyệt ngày nay không tự động theo dõi các chuyển hướng 305.
Khi thiết kế API hoặc dịch vụ web, không nên dựa vào 305 để thực thi proxy.
Các lựa chọn thay thế cho 305 Use Proxy
Thay vì dựa vào 305, các nhà phát triển hiện sử dụng:
- Tệp cấu hình tự động proxy (PAC): Để cài đặt proxy tự động.
- WPAD (Giao thức tự động phát hiện proxy web): Dành cho mạng doanh nghiệp.
- Proxy trong suốt: Được cấu hình ở cấp độ tường lửa.
- Proxy cấp ứng dụng: Được tích hợp trực tiếp vào các client phần mềm.
Tóm tắt các điểm chính về 305 Use Proxy
- Nó hướng dẫn client sử dụng máy chủ proxy được chỉ định trong tiêu đề
Location. - Chủ yếu được bao gồm trong các đặc tả HTTP/1.1 ban đầu nhưng hiện không được khuyến khích.
- Hiếm khi được triển khai bởi các trình duyệt hiện đại.
- Thường được thay thế bằng cài đặt proxy cấp client hoặc hệ thống.
- Có những lo ngại đáng kể về bảo mật hạn chế việc sử dụng nó.
- Hữu ích để hiểu về bối cảnh lịch sử hoặc các ứng dụng chuyên biệt.
Kết luận: Tại sao việc hiểu 305 Use Proxy vẫn quan trọng
Mã trạng thái 305 Use Proxy là một phần thú vị của lịch sử HTTP. Mặc dù nó hứa hẹn một cách gọn gàng để thực thi việc sử dụng proxy, nhưng cuối cùng nó đã thất bại do rủi ro bảo mật.
Ngay cả khi bạn hiếm khi gặp mã trạng thái HTTP 305 Use Proxy ngày nay, nó vẫn là một phần có ý nghĩa của lịch sử HTTP và kiểm soát proxy. Bằng cách nắm bắt mục đích, hành vi và giới hạn của nó, các nhà phát triển có được sự hiểu biết rộng hơn về cách giao tiếp web và cơ chế chuyển hướng đã phát triển.
Ngày nay, nó giống như một sự tò mò hơn là một công cụ thực tế. Nhưng với tư cách là một nhà phát triển, việc hiểu nó giúp bạn đánh giá cao sự phát triển của các tiêu chuẩn web.
Hơn nữa, nếu bạn từng làm việc với các hệ thống cũ, proxy hoặc môi trường API nâng cao, việc biết về 305 có thể giúp tiết kiệm thời gian khắc phục sự cố hành vi bất thường.
Và nếu bạn muốn thử nghiệm với 305 trong một môi trường an toàn, có kiểm soát, bạn không cần phải khởi động các trình duyệt cũ hoặc hệ thống cũ. Chỉ cần sử dụng Apidog để mô phỏng và kiểm thử nó một cách dễ dàng. Để giúp bạn khám phá các mã trạng thái HTTP như 305 Use Proxy hiệu quả hơn, hãy tải xuống Apidog miễn phí. Apidog trang bị cho bạn các công cụ kiểm thử, gỡ lỗi và tài liệu mạnh mẽ để tự tin quản lý API và quy trình làm việc HTTP của bạn bất kể phức tạp đến đâu. Đây là cách đơn giản nhất để xây dựng các ứng dụng mạnh mẽ, bền vững trong tương lai.
