API có nên trả về 404 không?
Bài viết này sẽ khám phá Lỗi 404 Not Found bằng cách xem xét nguyên nhân có thể gây ra lỗi này. Sau này, chúng tôi sẽ cung cấp một số mẹo để chẩn đoán và gỡ lỗi 404 cho ứng dụng của bạn. Show
Với điều đó, chúng ta hãy bắt đầu Phía máy chủ hay phía máy khách?Tất cả các mã trạng thái phản hồi HTTP trong danh mục 4xx đều là phản hồi lỗi máy khách. Các loại thông báo này tương phản với các lỗi trong danh mục 5xx, chẳng hạn như Lỗi Cổng xấu 502, là phản hồi lỗi của máy chủ. Điều đó nói rằng, sự xuất hiện của lỗi HTTP 404 không phải lúc nào cũng có nghĩa là sự cố liên quan đến máy khách (trình duyệt web hoặc thiết bị được sử dụng để truy cập ứng dụng). Đôi khi, gốc rễ của vấn đề là phía máy chủ. Hãy nhớ rằng, máy chủ vẫn là đối tượng mạng tạo ra Lỗi 404 Not Found Chúng ta sẽ khám phá một số tình huống (và các giải pháp tiềm năng) trong đó lỗi xảy ra do sự cố của máy chủ và/hoặc máy khách trong các phần sau Bắt đầu với một bản sao lưu ứng dụng kỹ lưỡngTạo một bản sao lưu của ứng dụng, cơ sở dữ liệu của bạn, v.v. trước khi cố gắng sửa chữa hoặc thay đổi hệ thống. Tốt hơn nữa, nếu bạn có khả năng, hãy tạo một bản sao hoàn chỉnh của ứng dụng trên một máy chủ dàn thứ cấp không khả dụng cho công chúng. Điều này sẽ cung cấp cho bạn một nền tảng thử nghiệm rõ ràng để kiểm tra tất cả các bản sửa lỗi tiềm năng mà không đe dọa đến ứng dụng trực tiếp của bạn. Sau khi bạn hoàn thành việc đó, đã đến lúc bắt đầu chẩn đoán và sửa lỗi 404 của bạn Chẩn đoán lỗi 404 Not FoundXảy ra lỗi HTTP 404 khi không có tài nguyên. Máy khách (trình duyệt web) nhận được thông báo từ máy chủ (máy tính từ xa) rằng tài nguyên cụ thể (trang web/URL) không khả dụng Dưới đây là một vài tình huống mà điều này có thể xảy ra.
URL được cung cấp trước đây có thể hợp lệ nhưng máy chủ không thể cung cấp chuyển hướng phía máy chủ. Khắc phục sự cố phía máy kháchCách tốt nhất để bắt đầu khắc phục lỗi 404 Not Found Error là tìm kiếm các sự cố tiềm ẩn ở phía máy khách. Dưới đây là một số mẹo để thử trên trình duyệt hoặc thiết bị gây ra sự cố cho bạn Kiểm tra URL được yêu cầuNguyên nhân phổ biến nhất của Lỗi 404 Not Found là nhập sai URL. Tên miền (e. g. , phanh hơi. io) không phân biệt chữ hoa chữ thường, nghĩa là chữ hoa chữ thường hỗn hợp này liên kết đến AirBrAKe. IO hoạt động tốt như phiên bản viết thường, tiêu chuẩn của phanh khí. io . Tuy nhiên, các phần xuất hiện sau tên miền thường phân biệt chữ hoa chữ thường trừ khi cấu hình ứng dụng/máy chủ xử lý trước tất cả các URL dưới dạng chữ thường trước khi thực thi. Ví dụ, trong khi phanh khí. io có thể là chữ hoa, chữ thường hoặc hỗn hợp, liên kết đến phanh khí. io/ERROR-MONITORING/ (với BLOG viết hoa) không hợp lệ, dẫn đến lỗi 404 Not Found của chúng ta. Tất nhiên, phiên bản chữ thường để https. //www. phanh hơi. io/giám sát lỗi hoạt động tốt như mong đợi Như bạn có thể thấy, một lỗi đánh máy nhỏ trong một phần của URL có thể dễ dàng dẫn đến Lỗi 404 Not Found không mong muốn Xóa các cookie có liên quanNhư bạn có thể đã biết, Cookie HTTP là những mẩu dữ liệu nhỏ được lưu trữ trên thiết bị cục bộ của bạn. Các trang web và ứng dụng sử dụng các cookie này để "ghi nhớ" thông tin về trình duyệt và/hoặc thiết bị cụ thể này. Hầu hết các ứng dụng web hiện đại đều tận dụng cookie để lưu trữ dữ liệu dành riêng cho người dùng và trình duyệt. Bằng cách đó, ứng dụng có thể xác định khách hàng và cho phép các lượt truy cập trong tương lai nhanh hơn và dễ dàng hơn Tuy nhiên, cookie có thể lưu trữ bất kỳ thông tin nào. Trong nhiều trường hợp, các ứng dụng hoặc dịch vụ web -- chẳng hạn như mạng quảng cáo -- sẽ sử dụng dữ liệu được truy xuất từ cookie cục bộ để chuyển hướng hoặc xử lý các yêu cầu đến. Cookie không hợp lệ hoặc bị hỏng có thể làm "nhầm lẫn" máy chủ khi bạn cố truy cập vào tài nguyên không còn tồn tại. Trong hầu hết các trường hợp, bạn chỉ cần quan tâm đến các cookie liên quan đến trang web hoặc ứng dụng gây ra sự cố. Cookie được lưu trữ dựa trên tên miền của ứng dụng web, vì vậy bạn chỉ có thể xóa một cách rõ ràng những cookie khớp với tên miền của trang web (e. g. , phanh hơi. i). Tuy nhiên, nếu bạn không quen với việc xóa thủ công một số cookie nhất định, thì việc xóa tất cả cookie cùng một lúc sẽ dễ dàng và an toàn hơn nhiều Xóa cookie có thể được thực hiện theo nhiều cách khác nhau, tùy thuộc vào trình duyệt bạn đang sử dụng
Đăng xuất và đăng nhậpNếu ứng dụng của bạn có một số hình thức xác thực người dùng, bước cuối cùng phía máy khách cần thử là đăng xuất rồi đăng nhập lại. Nếu gần đây bạn đã xóa cookie của trình duyệt, thao tác này thường sẽ tự động đăng xuất bạn vào lần tiếp theo khi bạn cố tải trang. Ứng dụng có thể gặp sự cố với phiên trước đó của bạn trong một số trường hợp. Cũng như các dữ liệu khác, mã thông báo phiên (hoặc chuỗi phiên) được lưu trữ cục bộ trên thiết bị của bạn trong cookie và được máy khách chuyển đến máy chủ trong mọi yêu cầu. Nếu máy chủ không nhận ra mã thông báo phiên do khách hàng gửi hoặc đã xảy ra sự cố với máy chủ cho biết mã thông báo cụ thể đó không hợp lệ, bạn có thể gặp lỗi 404 Đối với hầu hết các ứng dụng web, đăng xuất và đăng nhập lại sẽ buộc mã thông báo phiên cục bộ được tạo lại Gỡ lỗi nền tảng phổ biếnNếu bạn đang chạy các gói phần mềm phổ biến trên máy chủ phản hồi với Lỗi 404 Not Found, trước tiên bạn có thể muốn bắt đầu bằng cách xem xét tính ổn định và chức năng của các nền tảng đó. Các hệ thống quản lý nội dung phổ biến nhất -- như WordPress, Joomla. và Drupal -- tất cả thường được thử nghiệm tốt ngay từ đầu. Tuy nhiên, khi bạn bắt đầu sửa đổi các tiện ích mở rộng cơ bản hoặc mã PHP, rất dễ gây ra sự cố không lường trước dẫn đến lỗi HTTP 404 Dưới đây là một số mẹo giúp bạn khắc phục sự cố một số nền tảng phần mềm phổ biến này Phục hồi các bản nâng cấp gần đâyNếu gần đây bạn đã cập nhật chính hệ thống quản lý nội dung trước khi Lỗi 404 Not Found xuất hiện, hãy xem xét quay lại phiên bản trước đó bạn đã cài đặt khi mọi thứ đang hoạt động tốt. Tương tự, bất kỳ tiện ích mở rộng hoặc mô-đun nào mà bạn có thể đã nâng cấp gần đây đều có thể gây ra sự cố phía máy chủ, do đó, việc hoàn nguyên về phiên bản trước của những tiện ích hoặc mô-đun đó cũng có thể hữu ích. Để được hỗ trợ với tác vụ này, chỉ cần Google "hạ cấp [PLATFORM_NAME]" và làm theo. Tuy nhiên, trong một số trường hợp, một số CMS nhất định không cung cấp khả năng hạ cấp phiên bản. Đây thường là trường hợp cho các nền tảng phổ biến hơn Gỡ cài đặt Tiện ích mở rộng, Mô-đun hoặc Plugin mớiMục đích của các tiện ích mở rộng, mô-đun hoặc plugin mới (tất cả đều có nghĩa giống nhau) là để cải thiện các khả năng và tính năng của nền tảng ngoài những gì nó có khả năng vượt trội. Hãy nhớ rằng một số tiện ích mở rộng có thể kiểm soát hoàn toàn hệ thống. Sau khi thực hiện, họ có thể thực hiện hầu như mọi thay đổi đối với mã PHP, HTML, CSS, JavaScript hoặc cơ sở dữ liệu. Do đó, bạn nên gỡ cài đặt bất kỳ tiện ích mở rộng nào được thêm gần đây nếu bạn đang gặp lỗi 404 Kiểm tra các thay đổi cơ sở dữ liệu không mong muốnNếu bạn gỡ cài đặt một tiện ích mở rộng, nó có thể không xóa hoàn toàn tất cả các thay đổi được thực hiện bởi tiện ích mở rộng đó. Điều này đặc biệt đúng đối với nhiều tiện ích mở rộng WordPress, được cấp quyền chọn lọc trong ứng dụng. Điều này có thể bao gồm quyền truy cập đầy đủ vào cơ sở dữ liệu. Các tiện ích mở rộng này có thể sửa đổi các bản ghi cơ sở dữ liệu không "thuộc về" chính tiện ích mở rộng nhưng được tạo và quản lý bởi các tiện ích mở rộng khác (hoặc thậm chí chính CMS cơ sở). Trong những trường hợp đó, tiện ích mở rộng có thể không biết cách hoàn nguyên các thay đổi đối với bản ghi cơ sở dữ liệu, vì vậy tiện ích mở rộng sẽ bỏ qua những điều đó khi gỡ cài đặt. Nếu bạn tin rằng tiện ích mở rộng có khả năng là thủ phạm gây ra Lỗi 404 Not Found, hãy mở cơ sở dữ liệu và xem qua các bảng và bản ghi theo cách thủ công có thể đã bị tiện ích mở rộng sửa đổi Khắc phục sự cố phía máy chủNếu bạn hiện không chạy ứng dụng CMS, đây là một số mẹo bổ sung để giúp bạn khắc phục sự cố máy chủ của mình Kiểm tra cấu hình máy chủ web của bạnHầu hết các máy chủ web hiện đại đều cung cấp một hoặc nhiều tệp cấu hình cho phép bạn dễ dàng điều chỉnh hành vi của máy chủ dựa trên các tình huống khác nhau. Ví dụ: máy chủ có thể được định cấu hình để từ chối yêu cầu tới các thư mục hoặc URL cụ thể, dẫn đến Lỗi 404 Not Found Tùy chọn cấu hình cho từng loại máy chủ web khác nhau có thể thay đổi đáng kể. Chúng tôi sẽ liệt kê một số máy chủ web phổ biến mà bạn có thể xem qua
Xem qua Nhật ký Gần như mọi ứng dụng web sẽ giữ một số dạng nhật ký phía máy chủ. Nhật ký ứng dụng thường là lịch sử của những gì ứng dụng đã làm, bao gồm các trang được yêu cầu, máy chủ được kết nối, kết quả cơ sở dữ liệu, v.v. Nhật ký máy chủ có liên quan đến phần cứng thực tế đang chạy ứng dụng. Các nhật ký này thường sẽ cung cấp thông tin chi tiết về tình trạng và trạng thái của tất cả các dịch vụ được kết nối hoặc của chính máy chủ. Google "ghi nhật ký [PLATFORM_NAME]" nếu bạn đang sử dụng CMS hoặc "ghi nhật ký [PROGRAMMING_LANGUAGE]" và "ghi nhật ký [OPERATING_SYSTEM]" để biết thêm thông tin về cách tìm nhật ký được đề cập Xác thực liên kết ứng dụngCó một số công cụ bạn có thể sử dụng để đảm bảo ứng dụng của mình không tạo ra bất kỳ lỗi 404 Not Found nào. Đối với người mới bắt đầu, bạn nên đăng ký trang web của mình với Google Search Console (nếu bạn chưa đăng ký). Công cụ này cung cấp cho bạn thông tin chi tiết về những gì mà các bot trình thu thập dữ liệu web của Google đã tìm thấy khi duyệt qua trang web của bạn. Mọi vấn đề sẽ được hiển thị ở đây cho tất cả các ứng dụng đã đăng ký của bạn và có thể là một cách dễ dàng (và tự động) để tìm các liên kết không hợp lệ hoặc các sự cố trang web khác Bạn cần kiểm tra một tài nguyên hoặc URL cụ thể? . W3C Link Checker tool to check links for 404 errors. Gỡ lỗi mã ứng dụng hoặc tập lệnh của bạnNếu vẫn thất bại, có thể sự cố trong một số mã tùy chỉnh trong ứng dụng của bạn đang gây ra sự cố. Cố gắng chẩn đoán xem sự cố có thể đến từ đâu bằng cách gỡ lỗi ứng dụng của bạn theo cách thủ công và phân tích cú pháp thông qua nhật ký máy chủ và ứng dụng. Lý tưởng nhất là tạo một bản sao của toàn bộ ứng dụng vào máy phát triển cục bộ và thực hiện quy trình gỡ lỗi từng bước. Điều này sẽ cho phép bạn tạo lại và xem lỗi 404 xảy ra khi nào và như thế nào Tại sao tôi nhận được lỗi 404 từ API của mình?Mã trạng thái phản hồi HTTP 404 Not Found cho biết rằng máy chủ không thể tìm thấy tài nguyên được yêu cầu . Các liên kết dẫn đến trang 404 thường được gọi là liên kết bị hỏng hoặc chết và có thể bị thối liên kết. Mã trạng thái 404 chỉ cho biết rằng tài nguyên bị thiếu. không phải sự vắng mặt là tạm thời hay vĩnh viễn.
Bạn có nên đặt lại 404 không?Khi người dùng yêu cầu một URL không tồn tại trên trang web của bạn, bạn phải trả về một trang lỗi riêng lẻ để cho họ biết rằng URL được yêu cầu không tồn tại . Bạn cũng nên đảm bảo rằng máy chủ trả về đúng mã trạng thái HTTP “404“.
Sự khác biệt giữa mã trạng thái 400 và 404 là gì?400 lỗi cho biết yêu cầu không hợp lệ, có nghĩa là thiếu tham số bắt buộc hoặc giá trị tham số không hợp lệ về mặt cú pháp đã được phát hiện (ví dụ: URL dự kiến chỉ ở dạng văn bản). Lỗi 404 cho biết không thể tìm thấy dịch vụ API được yêu cầu hoặc không thể tìm thấy thực thể được yêu cầu .
404 có phải là phía khách hàng không?Lỗi 404 là sự cố phía máy khách cho biết không thể tìm thấy URL được yêu cầu trên máy chủ . Nó có thể xảy ra vì một số lý do, chẳng hạn như tên miền không được trỏ chính xác, bị hỏng. htaccess hoặc quyền của tệp bị định cấu hình sai. |