Hôm nay chúng ta sẽ tìm hiểu các lỗi HTTP, bạn sẽ biết các lỗi 404 là gì. Trong thực tế, có gần một trăm mã lỗi khác nhau. Đừng lo, bạn không cần phải thuộc lòng hết tất cả lỗi đó đâu, nhưng cũng có những kỹ thuật để tìm ra đại khái lỗi xuất phát từ đâu.
Tại sao lại phát minh ra những con số này?
Nhưng tại sao chúng ta lại phát minh ra những con số lỗi này? Câu trả lời thực ra khá đơn giản, khi người dùng truy cập một trang web thông qua trình duyệt của mình, trình duyệt sẽ gửi yêu cầu đến máy chủ theo giao thức HTTP. Máy chủ cũng sẽ phản hồi ở định dạng HTTP và nếu mọi việc suôn sẻ sẽ gửi các tài nguyên được yêu cầu (trong trường hợp của chúng ta là trang web). Nhưng mọi thứ trở nên phức tạp hơn khi có lỗi. Biết rằng có lỗi là tốt, nhưng biết lỗi ở đâu còn tốt hơn. Đây là lý do tại sao số lỗi nhanh chóng được gán cho từng loại lỗi khác nhau. Điều này thực tế hơn nhiều và tiết kiệm thời gian cho nhiều nhà phát triển. Ví dụ, lỗi bắt đầu bằng 5 là sự cố ở cấp máy chủ.
Có năm loại lỗi
1.Thông tin
2. Thành công
3. Chuyển hướng
4. Lỗi người dùng
5. Lỗi máy chủ
Vì vậy, nếu số lỗi bắt đầu bằng 4, chúng ta sẽ biết rằng sự cố đến từ người dùng.
Tại sao lại là lỗi 404?
Nhưng tại sao lại là lỗi 404? Số đầu tiên là số 4, là lỗi đến trực tiếp từ ngườ dùng chứ không phải từ máy chủ. Thật vậy, lỗi 404 có nghĩa là không tìm thấy tài nguyên, máy chủ đã tìm kiếm bên người dùng nhưng không tìm thấy, như vậy lỗi xuất phát từ người dùng chưa cung cấp đúng url.
Khám phá lỗi 418
Lỗi HTTP 418 không liên quan gì đến các lỗi khác. Quả thực ý nghĩa của nó là “Tôi là một ấm trà” (I’m a teapot). Nó thực sự là một trò đùa kể từ khi nó xuất hiện lần đầu tiên trong RFC 2324 vào ngày 1 tháng 4 năm 1998. Những lời giải thích được các nhà phát triển đưa ra là: “Có cà phê ở khắp nơi trên thế giới. Càng ngày, trong một thế giới mà máy tính phổ biến, muốn pha cà phê. Pha cà phê là một nghệ thuật, nhưng trí tuệ phân tán của thế giới kết nối web vượt qua nghệ thuật. Do đó, có một yêu cầu mạnh mẽ, phong phú đối với một giao thức được thiết kế rõ ràng để pha cà phê. Cà phê được pha bằng cách sử dụng bình cà phê. Bình pha cà phê được nối mạng yêu cầu giao thức kiểm soát nếu muốn kiểm soát chúng”.
Nói cách khác, Giao thức điều khiển bình cà phê siêu văn bản, hay HTCPCP, nhằm gửi lại lỗi cho tất cả những người muốn điều khiển bình pha cà phê từ xa, nói với họ rằng họ đã nhầm địa chỉ mình thành … ấm trà.
“Trò đùa” ngày 1 tháng 4 này đã trở nên nổi tiếng vào thời điểm đó và mã lỗi của nó vẫn được giữ nguyên.
Vẫn có người đặt câu hỏi về lỗi 418 này, ngay cả đến ngày hôm nay.
Các lỗi HTTP khác
Đối với những người muốn tìm một lỗi cụ thể, bạn có thể tham khảo các bảng lỗi được phân loại theo danh mục dưới đây.
Một số mã vẫn chưa được sử dụng, nhưng sẽ được sử dụng trong tương lai. Các mã khác không dẫn đến bất kỳ hiển thị cụ thể nào cho người dùng, nhưng vẫn hiểu được (ví dụ: mã 200 hoặc 304, mà khách hàng không bao giờ nhìn thấy vì chúng liên quan đến phần lớn các yêu cầu thành công).
Tất cả các lỗi HTTP chính được trình bày trong các bảng này, thuộc các loại lỗi khác nhau:
Các mã bắt đầu bằng 1 (Thông tin):
Code | Thông điệp | Ý nghĩa |
---|---|---|
100 | Continue | Đang chờ được xử lý. |
101 | Switching Protocols | Chấp nhận việc thay đổi giao thức. |
102 | Processing | Đang xử lý (tránh cho khách hàng vượt quá thời hạn chờ đợi). |
103 | Early Hints | Trong khi chờ phản hồi cuối cùng, máy chủ trả về các liên kết mà máy khách có thể bắt đầu tải xuống. |
Các mã bắt đầu bằng 2 (Thành công):
Code | Thông điệp | Ý nghĩa |
---|---|---|
200 | OK | Yêu cầu được xử lý thành công. Phản hồi sẽ phụ thuộc vào phương pháp truy vấn được sử dụng. |
201 | Created | Yêu cầu được xử lý thành công và tài liệu đã được tạo. |
202 | Accepted | Yêu cầu được xử lý, nhưng không đảm bảo kết quả. |
203 | Non-Authoritative Information | Thông tin được trả lại, nhưng được tạo bởi một nguồn chưa được chứng nhận. |
204 | No Content | Yêu cầu được xử lý thành công nhưng không có thông tin để trả lại. |
205 | Reset Content | Yêu cầu được xử lý thành công, trang hiện tại có thể bị xóa. |
206 | Partial Content | Chỉ một phần của tài nguyên đã được truyền đi. |
207 | Multi-Status | Nhiều câu trả lời. (WebDav) |
208 | Already Reported | Tài liệu trước đó đã được gửi trong bộ sưu tập này. (WebDav) |
210 | Content Different | Bản sao của tài nguyên ở phía máy khách khác với bản sao trên máy chủ (nội dung hoặc thuộc tính). (WebDav) |
226 | IM Used | Máy chủ đã hoàn thành yêu cầu tài nguyên và phản hồi là sự thể hiện kết quả của một hoặc nhiều thao tác được áp dụng cho kết quả hiện tại. |
Các mã bắt đầu bằng 3 (Chuyển hướng):
Code | Thông điệp | Ý nghĩa |
---|---|---|
300 | Multiple Choices | URI được yêu cầu đề cập đến một số tài nguyên. |
301 | Moved Permanently | Tài liệu đã được di chuyển vĩnh viễn. |
302 | Found | Đã tạm thời di chuyển tài liệu. |
303 | See Other | Câu trả lời cho yêu cầu này nằm ở chỗ khác. |
304 | Not Modified | Tài liệu không được sửa đổi kể từ lần yêu cầu cuối cùng. |
305 | Use Proxy (since HTTP/1.1) | Yêu cầu phải được chuyển đến proxy. |
306 | Switch Proxy | Mã được sử dụng bởi phiên bản RFC 26167 cũ hơn, hiện đã được bảo lưu. Nó có nghĩa là “Các yêu cầu sau phải sử dụng proxy được chỉ định”. |
307 | Temporary Redirect | Yêu cầu phải được chuyển hướng tạm thời đến URI được chỉ định. |
308 | Permanent Redirect | Yêu cầu phải được chuyển hướng vĩnh viễn đến URI được chỉ định. |
310 | Too many Redirects | Yêu cầu phải được chuyển hướng quá nhiều lần hoặc trở thành nạn nhân của vòng lặp chuyển hướng. |
Các mã bắt đầu bằng 4 (lỗi máy khách web):
Code | Thông điệp | Ý nghĩa |
---|---|---|
400 | Bad Request | Cú pháp của truy vấn sai. |
401 | Unauthorized | Cần xác thực để truy cập tài nguyên. |
402 | Payment Required | Cần thanh toán để truy cập tài nguyên. |
403 | Forbidden | Máy chủ đã hiểu yêu cầu, nhưng từ chối thực hiện nó. Không giống như lỗi 401, xác thực sẽ không tạo ra bất kỳ sự khác biệt nào. Trên các máy chủ yêu cầu xác thực, điều này thường có nghĩa là xác thực đã được chấp nhận nhưng quyền truy cập không cho phép máy khách truy cập tài nguyên. |
404 | Not Found | Nguồn tài nguyên không được tìm thấy. |
405 | Method Not Allowed | Phương pháp truy vấn trái phép. |
406 | Not Acceptable | Tài nguyên được yêu cầu không có sẵn ở định dạng tuân theo tiêu đề “Chấp nhận” của yêu cầu. |
407 | Proxy Authentication Required | Quyền truy cập vào tài nguyên được phép bằng nhận dạng với proxy. |
408 | Request Time-out | Khoảng thời gian yêu cầu từ máy khách đã chờ ở phía máy chủ. Theo đặc tả HTTP: “Máy khách không đưa ra yêu cầu trong thời gian máy chủ sẵn sàng chờ. Máy khách CÓ THỂ lặp lại yêu cầu mà không cần sửa đổi bất kỳ lúc nào sau đó”. |
409 | Conflict | Không thể xử lý yêu cầu vào lúc này. |
410 | Gone | Tài nguyên không còn nữa và không xác định được địa chỉ chuyển hướng. |
411 | Length Required | Độ dài của yêu cầu không được chỉ định. |
412 | Precondition Failed | Điều kiện tiên quyết được gửi bởi yêu cầu không được kiểm tra. |
413 | Request Entity Too Large | Yêu cầu quá cao. |
414 | Request-URI Too Long | URI quá dài. |
415 | Unsupported Media Type | Định dạng truy vấn không được hỗ trợ cho một phương pháp và tài nguyên nhất định. |
416 | Requested range unsatisfiable | Các trường tiêu đề truy vấn “phạm vi” không chính xác. |
417 | Expectation failed | Hành vi được mong đợi và xác định trong tiêu đề của yêu cầu không thỏa mãn. |
418 | I’m a teapot | “Tôi là một ấm trà”: Mã này được định nghĩa trong RFC 232410 ngày 1 tháng 4 năm 1998, Hyper Text Coffee Pot Control Protocol. Đó là một trò đùa của quản trị viên web, nhằm gửi lại lỗi cho bất kỳ ai muốn điều khiển từ xa một bình cà phê, nói với họ rằng họ đã nhầm địa chỉ một ấm trà |
421 | Bad mapping / Misdirected Request | Yêu cầu đã được gửi đến máy chủ không có khả năng tạo phản hồi (ví dụ: vì kết nối đã được sử dụng lại). |
422 | Unprocessable entity | Thực thể được cung cấp với yêu cầu không thể hiểu được hoặc không đầy đủ. (WebDAV) |
423 | Locked | Thao tác không thể diễn ra vì tài nguyên bị khóa. (WebDAV) |
424 | Method failure | Một phương thức trong giao dịch không thành công. (WebDAV) |
425 | Too Early | Máy chủ không thể xử lý yêu cầu vì nó có thể được phát lại. |
426 | Upgrade Required | Máy khách nên thay đổi giao thức, ví dụ: thành TLS / 1.0. |
428 | Precondition Required | Yêu cầu phải có điều kiện. |
429 | Too Many Requests | Khách hàng đã đưa ra quá nhiều yêu cầu trong một khung thời gian nhất định. |
431 | Request Header Fields Too Large | Các tiêu đề HTTP được gửi vượt quá kích thước tối đa mà máy chủ cho phép. |
449 | Retry With | Mã do Microsoft xác định. Yêu cầu phải được trả lại sau khi thực hiện một hành động. |
450 | Blocked by Windows Parental Controls | Bộ mã của Microsoft. Lỗi này xảy ra khi Windows Parental Controls được bật và chặn quyền truy cập vào trang. |
451 | Unavailable For Legal Reasons | Mã lỗi này cho biết rằng tài nguyên được yêu cầu không thể truy cập được vì lý do pháp lý. |
456 | Unrecoverable Error | Lỗi không thể khôi phục. (WebDAV) |
Các mã bắt đầu bằng 5 (Lỗi máy chủ):
Code | Message | Meaning |
---|---|---|
500 | Internal Server Error |
Lỗi máy chủ nội bộ.
|
501 | Not Implemented | Chức năng đã yêu cầu không được máy chủ hỗ trợ. |
502 | Bad Gateway ou Proxy Error | Bằng cách hoạt động như một máy chủ proxy hoặc cổng, máy chủ nhận được phản hồi không hợp lệ từ máy chủ từ xa. |
503 | Service Unavailable | Dịch vụ tạm thời không khả dụng hoặc đang được bảo trì. |
504 | Gateway Time-out | Thời gian chờ phản hồi từ máy chủ đến máy chủ trung gian. |
505 | HTTP Version not supported | Phiên bản HTTP không được máy chủ hỗ trợ. |
506 | Variant Also Negotiates | Lỗi thương lượng. |
507 | Insufficient storage | Không đủ dung lượng để chỉnh sửa thuộc tính hoặc xây dựng bộ sưu tập. (WebDAV) |
508 | Loop detected | Vòng lặp trong một liên kết tài nguyên. (WebDAV) |
509 | Bandwidth Limit Exceeded | Được nhiều máy chủ sử dụng để chỉ báo vượt hạn mức. |
510 | Not extended | Yêu cầu không tôn trọng chính sách truy cập tài nguyên HTTP mở rộng. |
511 | Network authentication required | Máy khách phải xác thực để truy cập mạng. Được sử dụng bởi các cổng cố định để chuyển hướng khách hàng đến trang xác thực. |
Ngoài ra, nếu có câu hỏi nào thì bình luận bên dưới nhé. Bạn cũng có thể xem thêm các lỗi cần tránh khi thiết kế website tại đây.