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.  

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ưỡng

Tạ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 Found

Xả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.  

  • Máy khách đã gửi một yêu cầu thích hợp đến máy chủ và máy chủ đã nhận được yêu cầu đó thành công và máy chủ không thể tìm thấy tài nguyên hợp lệ tại vị trí cụ thể đó. Điều này thường là do một URL không hợp lệ do khách hàng chỉ định. Điều này đại diện cho phần lớn lỗi 404 Not Found
  • Một số ứng dụng web "nhái" Lỗi 404 Not Found khi yêu cầu tài nguyên không hợp lệ. Máy chủ trả về mã phản hồi tiêu chuẩn 200 OK, có nghĩa là tài nguyên được tải như mong đợi, tuy nhiên, máy chủ đã hiển thị "trang 404 tùy chỉnh. ” Những lỗi giả mạo như vậy thường được gọi là lỗi 404 mềm.  

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ách

Cá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ầu

Nguyê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 quan

Như 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

  • Google Chrome
  • trình duyệt web IE
  • Microsoft Cạnh
  • Mozilla Firefox
  • Cuộc đi săn

Đăng xuất và đăng nhập

Nế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ến

Nế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 đây

Nế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ới

Mụ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ốn

Nế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ạn

Hầ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

  • apache
  • Nginx
  • IIS
  • Nút. js
  • Apache Tomcat

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ụng

Có 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ạn

Nế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.

Chủ Đề