¿Necesitamos devolver explícitamente un código http 200 si una solicitud es exitosa?

Hay dos respuestas a esta pregunta.

  1. Tienes que devolver ALGUNOS códigos de error. La sintaxis de HTTP requiere que se devuelva un código de estado de tres dígitos; consulte Protocolo de transferencia de hipertexto (HTTP / 1.1): sintaxis de mensajes y enrutamiento RFC-7230 para obtener más información. Es posible que algunos entornos de idiomas no requieran especificar un código en su programa, pero lo más probable es que usen 200 en ese caso.
  2. El código que devuelve normalmente debería ser 200, pero hay otros códigos válidos para devolver. Consulte el Protocolo de transferencia de hipertexto (HTTP / 1.1): semántica y contenido para obtener más información, pero los más comunes son:
  • 201 si su punto final crea un recurso. La respuesta debe tener un encabezado de ubicación que especifique la URL para acceder al recurso.
  • 204 si no tiene contenido útil para devolver. Esto es común si está eliminando un recurso.
  • 200 si devuelve algún contenido útil. Esta debería ser su opción predeterminada.

Desde el servidor hasta el navegador, es obligatorio. Sin el código de respuesta, el navegador debe tratar el cuerpo final como un documento html y no puede hacer mucho con él. Puede consultar: Tolerancia del cliente de servidores HTTP defectuosos

Pero si la pregunta era entre el código de la aplicación y el marco del servidor, entonces no es necesario ya que la mayoría de los marcos asumen 200 OK como código de estado predeterminado y el marco lo insertará automáticamente. Pocos frameworks / idiomas que lo hacen: Servlets, jax-rs, php,

Siempre es una buena práctica enviar el código de estado HTTP apropiado junto con la respuesta. Por ejemplo, cuando intenta buscar un objeto por id y si NO se encuentra, debe enviar el código con el código de estado 404. Del mismo modo, cuando intenta crear un objeto, siempre es mejor enviar el código de estado 201. NO es recomendable enviar el código de respuesta siempre 200 ok.

Sí. Es lo que le dice al cliente que continúe y lea el contenido. El cliente rechazará cualquier mensaje que no tenga un código de retorno.