Mã lỗi HTTP 505 là gì và cách khắc phục nó vào năm 2026?
Tóm tắt
Lỗi 505 có nghĩa là "Phiên bản HTTP không được hỗ trợ" - máy chủ đã từ chối phiên bản HTTP được nêu trong dòng yêu cầu, điều này thường không liên quan gì đến trang cụ thể mà bạn đang cố gắng tải
Các nguyên nhân kỹ thuật đã được tài liệu hóa là dòng yêu cầu bị lỗi, dòng yêu cầu kết thúc bằng cách xuống dòng sai, hoặc một trung gian (proxy hoặc bộ cân bằng tải) xử lý sai yêu cầu được chuyển tiếp trước khi đến máy chủ gốc.
Là một khách truy cập, việc cập nhật hoặc chuyển đổi trình duyệt của bạn và xóa bộ nhớ cache của nó có thể giải quyết hầu hết các lỗi 505 bên phía khách, vì một client lỗi thời có thể gửi một phiên bản mà các máy chủ hiện đại không còn chấp nhận nữa.
Là một quản trị viên máy chủ, cách khắc phục thường nằm trong cấu hình reverse proxy hoặc web server của bạn - chỉ thị proxy_http_version của nginx và cài đặt force-proxy-request-1.0 của Apache đều kiểm soát phiên bản HTTP nào đến với backend của bạn.
Một proxy hoặc bộ cân bằng tải nằm giữa client và máy chủ gốc của bạn là một nguyên nhân đã được tài liệu hóa của các lỗi 505, vì vậy loại trừ lớp đó trước khi chạm vào mã ứng dụng sẽ tiết kiệm thời gian gỡ lỗi.
Lỗi 505 là một lỗi khác với lỗi gateway 502, 503 hoặc 504 và phản hồi 426 Cần nâng cấp, mặc dù tất cả đều xuất phát từ phía máy chủ.
Ý nghĩa của lỗi HTTP 505
Phản hồi HTTP 505 có nghĩa là máy chủ đã từ chối xử lý yêu cầu vì nó không hỗ trợ phiên bản HTTP mà yêu cầu đã công bố. Đây là một lỗi hẹp hơn hầu hết các mã trạng thái mà một trình duyệt hoặc HTTP proxy có thể hiển thị, vì nó liên quan đến chính bao bì giao thức thay vì xác thực, giới hạn tỉ lệ hoặc tài nguyên đang được yêu cầu. Theo tài liệu mã trạng thái HTTP MDN, "mã trạng thái lỗi máy chủ HTTP 505 HTTP Version Not Supported cho biết rằng phiên bản HTTP được sử dụng trong yêu cầu không được máy chủ hỗ trợ." Khung cảnh đó quan trọng: một lỗi 505 là một tuyên bố về bao bì giao thức của yêu cầu, không phải về URL, nội dung trang, hoặc (thường thì) tài khoản hoặc quyền truy cập của bạn. Thấy lỗi 505 không có nghĩa là trang web đang gặp sự cố theo cách mà một lỗi 404 hoặc 500 có thể chỉ ra - nó có nghĩa là có điều gì đó trong con đường giữa client của bạn và máy chủ đã gửi một yêu cầu mà máy chủ không thể phân tích dưới dạng phiên bản mà nó nhận dạng.
Trải nghiem Nstproxy - Bat dau dung thu mien phi ngay
Tại sao máy chủ thực sự trả về lỗi 505?
Ba tình huống kỹ thuật dẫn đến phản hồi này, và MDN ghi lại tất cả ba tình huống này một cách trực tiếp. Một dòng yêu cầu bị lỗi - chẳng hạn như một khoảng trắng thô, không được mã hóa ở vị trí mà một URL lẽ ra phải có %20 - có thể làm khó khăn cách máy chủ phân tích token phiên bản HTTP theo sau nó. Một dòng yêu cầu kết thúc bằng \n mà không có \r\n cần thiết có thể có tác động tương tự, vì bộ phân tích của máy chủ đang tìm kiếm một kết thúc dòng cụ thể trước khi nó đọc phiên bản. Nguyên nhân thứ ba thường bị bỏ lỡ nhất: một trung gian, chẳng hạn như bộ cân bằng tải hoặc proxy, không chuyển tiếp thông tin phiên bản chính xác trong dòng yêu cầu mà nó truyền đi, khiến máy chủ gốc đọc một phiên bản mà thực tế không phải là những gì client đã gửi.
Các nguyên nhân phổ biến đáng để loại trừ trước
Trong thực tế, một vài tình huống hàng ngày chiếm phần lớn các lỗi 505 được báo cáo bởi khách truy cập trang web và các nhà phát triển. Một trình duyệt hoặc thư viện khách HTTP lỗi thời vẫn gửi yêu cầu theo định dạng cũ là một trong những nguyên nhân phổ biến hơn, đặc biệt với các kịch bản tự động hoặc SDK cũ chưa được cập nhật trong nhiều năm. Một máy chủ web cấu hình sai - một máy chủ từ chối hoàn toàn HTTP/1.0, hoặc một máy chủ có một host ảo chỉ vào trình xử lý giao thức sai - là một nguyên nhân khác. Phần mềm máy chủ lỗi thời có trước sự hỗ trợ rộng rãi của HTTP/1.1 hoặc HTTP/2 cũng có thể gây ra lỗi này. Nguyên nhân thứ tư, và là điều hướng dẫn này dành nhiều thời gian nhất, là một proxy hoặc trung gian thay đổi phiên bản HTTP trong quá trình truyền tải, điều này hoàn toàn khớp với nguyên nhân thứ ba mà MDN liệt kê.
Nhìn nhanh
Nếu bạn gặp phải các lỗi 505 không nhất quán khi chạy các yêu cầu qua một cụm proxy quay vòng, chính proxy đó có thể là thứ đang làm hỏng dòng yêu cầu của bạn - cổng của Nstproxy nói tiếng HTTP(S) và SOCKS5 tiêu chuẩn chứ không phải thực hiện một giao thức tùy chỉnh nào, vì vậy đó không phải là biến mà bạn cần gỡ lỗi.
Cách khắc phục lỗi 505 với tư cách là người truy cập
Bắt đầu với trình duyệt của bạn, vì đó là thứ nhanh nhất để thay đổi và loại trừ. Cập nhật nó lên phiên bản hiện tại, vì nhà cung cấp trình duyệt thường xuyên ngừng hỗ trợ hoặc thay đổi cách họ thương lượng hành vi HTTP cũ, và một phiên bản lỗi thời là một trong những nguyên nhân đã được ghi nhận. Nếu việc cập nhật không giúp ích, hãy thử cùng một URL trong một trình duyệt hoàn toàn khác — nếu trình duyệt thứ hai tải trang một cách bình thường, vấn đề là cụ thể với cấu hình trình duyệt ban đầu của bạn hoặc một tiện ích mở rộng, chứ không phải trang web. Tiếp theo, hãy xóa bộ nhớ cache của trình duyệt của bạn, vì một phiên bản yêu cầu bị lỗi trong bộ nhớ cache hoặc một worker dịch vụ lỗi thời có thể đôi khi gửi lại một yêu cầu bị lỗi trong các lần truy cập lặp lại. Cuối cùng, kiểm tra lại URL chính nó để tìm các ký tự lạ, đặc biệt là các khoảng trắng chưa mã hóa hoặc dấu câu không bình thường đã được dán từ nơi khác, vì một dòng yêu cầu bị lỗi là một trong ba nguyên nhân mà tài liệu MDN đề cập trực tiếp.
Cách khắc phục lỗi 505 trên máy chủ của bạn
Nếu bạn quản lý máy chủ, việc sửa lỗi thường là một thiết lập cấu hình thay vì mã ứng dụng. Trên nginx, hãy kiểm tra chỉ thị proxy_http_version trong bất kỳ vị trí hoặc khối máy chủ nào mà proxy đến backend — tài liệu của nginx liệt kê cú pháp là proxy_http_version 1.0 | 1.1 | 2;, với mặc định là 1.1 kể từ nginx 1.29.7 (các phiên bản trước đó mặc định là 1.0). Nếu backend của bạn chỉ hỗ trợ HTTP/1.1 và phiên bản nginx của bạn trước đó thay đổi đó, một dòng proxy_http_version 1.1; rõ ràng trong khối liên quan sẽ loại bỏ sự mơ hồ:
Trên Apache, các điểm điều khiển tương đương là hai biến môi trường của mod_proxy được thiết lập qua SetEnv. Tài liệu mod_proxy của Apache mô tả force-proxy-request-1.0, điều này "buộc proxy sử dụng HTTP/1.0 mà không có keepalive" đến backend và được thiết kế cho các backend không thực thi đúng HTTP/1.1 hoặc keepalive, cộng với proxy-nokeepalive, điều này vô hiệu hóa các kết nối keepalive đến backend mà không ép buộc HTTP/1.0. Tài liệu của Apache cho thấy chúng cùng nhau như sau:
Nếu bạn có một bộ cân bằng tải hoặc CDN ở trước máy chủ gốc, hãy kiểm tra các thiết lập phiên bản HTTP của nó — một lỗi 505 chỉ xuất hiện qua bộ cân bằng tải và không khi bạn truy cập trực tiếp vào gốc chỉ ra rằng trung gian đó đang sửa đổi hoặc báo cáo sai dòng yêu cầu.
505 so với các mã lỗi HTTP khác
Một lỗi 505 dễ dàng bị nhầm lẫn với các lỗi phía máy chủ khác, nhưng từng cái lại chỉ đến một nơi khác nhau. Một lỗi 502 Bad Gateway hoặc 504 Gateway Timeout nghĩa là một trung gian đã đến backend và nhận được hoặc là một phản hồi không hợp lệ hoặc không có phản hồi kịp thời — phiên bản giao thức không phải là vấn đề, mà là kết nối hoặc việc xử lý phản hồi mới là. Một lỗi 503 Service Unavailable thường báo hiệu rằng máy chủ có ý từ chối các yêu cầu, thường vì bảo trì hoặc vì quá tải, mà không có sự sai lệch nào về phiên bản. Một lỗi 429 Too Many Requests lại khác — đây là giới hạn tần suất, không phải là sự bất đồng về giao thức, và sửa lỗi (giãn khoảng hoặc phân phối yêu cầu) không có gì liên quan đến việc sửa lỗi 505. Một lỗi 426 Upgrade Required là người chị em gần gũi hơn: nó cũng liên quan đến thương lượng phiên bản HTTP, nhưng đây là máy chủ yêu cầu khách hàng chuyển sang một phiên bản mới hơn thay vì từ chối yêu cầu ngay lập tức, và nó thường đi kèm với một Upgrade header nêu tên phiên bản mà nó muốn. Biết được bạn thực sự đang nhìn vào cái nào sẽ thu hẹp phạm vi sửa lỗi trước khi bạn chạm vào bất kỳ cấu hình nào.
Khi một proxy là nguyên nhân thực sự
Nếu lỗi 505 xuất hiện đặc biệt khi các yêu cầu chạy qua một proxy, VPN, hoặc bộ cân bằng tải — và không khi cùng một yêu cầu đi trực tiếp đến gốc — thì trung gian rất có thể làm sai dòng yêu cầu, đúng như nguyên nhân thứ ba đã được tài liệu MDN mô tả. Hãy cách li điều này bằng cách chạy cùng một yêu cầu hai lần, một lần qua proxy và một lần trực tiếp, hoặc sử dụng một công cụ kiểm tra proxy để xác nhận rằng chính proxy đó đang phản hồi và chuyển tiếp đúng trước khi giả định rằng máy chủ mục tiêu là nguyên nhân. Điều này đặc biệt quan trọng đối với bất kỳ ai chạy các yêu cầu tự động với khối lượng lớn, nơi một proxy không ổn định hoặc được xây dựng kém có thể đưa ra lỗi không khớp phiên bản trông như đến từ trang web mục tiêu.
Dòng sản phẩm Residential Lite của Nstproxy là một lựa chọn cho tình huống cụ thể đó. Đây là dịch vụ proxy dành cho hộ gia đình ghi lại sự hỗ trợ cho giao thức HTTP(S) và SOCKS5 tiêu chuẩn thay vì một triển khai tùy chỉnh hoặc không hoàn chỉnh, vì vậy các yêu cầu được định tuyến qua nó tuân theo cùng một quy trình thương lượng phiên mà bất kỳ khách hàng hoặc reverse proxy hiện đại nào cũng mong đợi. Nó nhắm đến các nhà phát triển và các nhóm nhỏ đang chạy các công việc thu thập dữ liệu, giám sát hoặc tự động hóa, những người cần loại bỏ lớp proxy như một biến số khi một mạch yêu cầu gặp phải lỗi 505 không nhất quán hoặc các lỗi tương tự. Quyền truy cập được bán theo các gói dữ liệu trả trước thay vì một thuê bao hàng tháng cố định, phù hợp hơn với một cuộc chạy gỡ lỗi ngắn hoặc sử dụng liên tục vừa phải hơn là lưu lượng truy cập cao liên tục. Cần lưu ý rằng Residential Lite là một dòng sản phẩm trong số nhiều dòng sản phẩm mà Nstproxy cung cấp, vì vậy một khối lượng công việc cần một địa chỉ IP tĩnh chuyên dùng hoặc IP từ nhà mạng cụ thể sẽ xem xét một dòng sản phẩm khác.
Hỗ trợ HTTP(S) và SOCKS5 tiêu chuẩn — hai họ giao thức mà ChromeOS, hầu hết các thư viện khách HTTP, và các reverse proxy như nginx đã mong đợi, vì vậy không có lớp dịch giao thức tùy chỉnh nào cần gỡ lỗi.
Hơn 50 triệu IP dân cư trên hơn 200 quốc gia và khu vực — hữu ích khi nhiệm vụ cơ bản là phân phối yêu cầu quy mô lớn, không chỉ là sự tương thích giao thức.
Gói trả trước từ 10GB đến 10TB — kích thước cho việc thử nghiệm một bản sửa lỗi trên một gói nhỏ trước khi cam kết với lưu lượng liên tục.
Cổng truy cập được tạo từ bảng điều khiển cho mỗi tài khoản — bạn có một điểm kết nối duy nhất và nhất quán để chỉ định các yêu cầu của bạn, giúp dễ dàng xác định xem lỗi phát sinh từ mã của bạn, proxy, hay máy chủ đích; các bước thiết lập được ghi lại để chỉ định một khách hàng HTTP hoặc trình duyệt vào cổng đó.
Lỗi 505 hẹp hơn những gì nó trông như: đó là sự bất đồng cụ thể về phiên bản giao thức HTTP giữa khách hàng, bất kỳ trung gian nào, và máy chủ, không phải là một tín hiệu "có gì đó bị hỏng" tổng quát. Khách truy cập thường có thể khắc phục bằng cách cập nhật hoặc chuyển đổi trình duyệt và kiểm tra URL để tìm các ký tự lạ. Quản trị viên máy chủ nên kiểm tra proxy_http_version trên nginx hoặc các biến môi trường force-proxy-request-1.0/proxy-nokeepalive trên Apache trước khi giả định rằng vấn đề nằm trong mã ứng dụng, và bất kỳ ai đang chạy yêu cầu qua proxy hoặc bộ cân bằng tải nên thử nghiệm một yêu cầu trực tiếp đến nguồn để xem liệu trung gian có phải là nguồn gốc thực sự hay không.
Q: Lỗi 505 có nghĩa là website đang gặp sự cố không?
Không, lỗi 505 cụ thể có nghĩa là máy chủ đã từ chối phiên bản HTTP được nêu trong yêu cầu, đây là một vấn đề hẹp hơn so với việc máy chủ không thể truy cập hoặc quá tải, và nó không nhất thiết chỉ ra rằng trang web đang gặp sự cố đối với những khách truy cập khác.
Q: Lỗi 505 do máy tính của tôi hay do website gây ra?
Có thể do cả hai bên: MDN ghi nhận các dòng yêu cầu không hợp lệ và kết thúc dòng không chính xác (thường là vấn đề từ phía khách hàng) bên cạnh việc trung gian xử lý không đúng yêu cầu được chuyển tiếp (vấn đề từ phía máy chủ hoặc mạng), vì vậy cách sửa chữa phụ thuộc vào bên nào trong hai bên mà bạn đang làm việc.
Q: Sự khác biệt giữa lỗi 505 và lỗi 502 hoặc 503 là gì?
Lỗi 505 cụ thể liên quan đến tính tương thích phiên bản HTTP, trong khi lỗi 502 có nghĩa là một trung gian đã nhận được phản hồi không hợp lệ từ backend và lỗi 503 có nghĩa là máy chủ đang cố tình từ chối các yêu cầu, thường là do bảo trì hoặc quá tải, mà không có sự không tương thích về phiên bản nào liên quan trong cả hai trường hợp.
Q: Proxy hoặc VPN có thể gây ra lỗi 505 không?
Có — MDN liệt kê một trung gian mà xử lý không đúng dòng yêu cầu được chuyển tiếp là một trong ba nguyên nhân đã được ghi nhận, vì vậy nếu lỗi 505 chỉ xuất hiện khi lưu lượng đi qua một proxy, bộ cân bằng tải, hoặc VPN và không phải trên một yêu cầu trực tiếp, thì trung gian đó là nguồn gốc có khả năng cao nhất.
Q: Tôi có cần thay đổi mã máy chủ để khắc phục lỗi 505 không?
Thường thì không; giải pháp thường là một thay đổi cấu hình — chỉ thị proxy_http_version trên nginx hoặc các cài đặt force-proxy-request-1.0/proxy-nokeepalive trên Apache — thay vì một thay đổi trong mã ứng dụng.
Ivy Lin
Aug. 6th 2026
110M+ IP that voi ti le truy cap thanh cong 99.9%
Phan hoi trung binh ~0.5s cho tac vu dong thoi cao
Chi tu $0.1/GB
Truy cap ngay cac pool proxy residential, datacenter, IPv6 va ISP cao cap.