Descripción de Servidor Web

Clase 28 de 42Curso Práctico de Go: Creación de un Servidor Web

Contenido del curso

Construyendo un Servidor Web

Resumen

Construir un servidor web implica comprender cómo se comunican los clientes y los servidores. Antes de escribir una sola línea de código, es fundamental dominar conceptos como HTTP, JSON, endpoints y las operaciones CRUD, ya que son la base de cualquier aplicación web moderna.

¿Qué papel juegan el cliente y el servidor en la comunicación web?

Cuando accedes a una plataforma desde tu computadora o dispositivo móvil, tu equipo actúa como cliente [0:14]. Este cliente se comunica con un servidor que procesa las solicitudes y devuelve información. Por ejemplo, si solicitas ver los cursos del área de desarrollo e ingeniería, el servidor procesa esa petición y te responde con datos.

Esa información viaja en un formato llamado JSON (JavaScript Object Notation) [0:42]. JSON es una notación especial que permite transmitir datos entre clientes y servidores de forma estructurada, siguiendo un esquema sencillo de pares nombre-valor separados por comas.

¿Qué es HTTP y por qué es esencial?

HTTP (Hypertext Transfer Protocol) es el protocolo de red que hace posible esta comunicación [1:03]. Funciona como el idioma común entre cliente y servidor: el cliente envía una petición (request) y el servidor devuelve una respuesta (response). Ambas partes utilizan JSON para representar la información, tanto en la petición como en la respuesta [3:29].

¿Qué es un API y cómo expone la base de datos?

Detrás de un servidor existe una base de datos donde se almacena información como cursos, estudiantes y profesores [1:15]. El servidor expone esa base de datos a través de un API (Application Programming Interface) [1:28]. Un API actúa como intermediario que permite al cliente interactuar con los datos almacenados de manera controlada y segura.

¿Qué son las operaciones CRUD y cómo se relacionan con REST?

El API está vinculado con cuatro operaciones fundamentales conocidas como CRUD [1:37]:

  • Create: crear un nuevo registro.
  • Read: leer o consultar información existente.
  • Update: actualizar un registro.
  • Delete: eliminar un registro.

Estas son las operaciones básicas que permiten modificar la base de datos. Un REST API (Representational State Transfer) aprovecha HTTP para mapear cada solicitud del cliente a una de estas operaciones [1:53].

¿Cómo se conectan los métodos HTTP con CRUD?

HTTP ofrece métodos que indican qué tipo de acción se desea realizar [2:15]:

  • GET se relaciona con read: leer datos.
  • POST se relaciona con create: crear nuevos registros.
  • PUT se relaciona con update: actualizar registros existentes.
  • DELETE se relaciona con delete: eliminar registros.

El elemento que recibe estas solicitudes es el endpoint [2:33], una dirección específica como API/curso. Este endpoint analiza qué método HTTP está recibiendo desde el cliente y, dependiendo de eso, ejecuta la operación CRUD correspondiente. Es decir, el verbo HTTP es quien decide qué operación se ejecuta [2:56].

¿Cómo se integra todo en un servidor web con Go?

Go provee un paquete de HTTP bastante completo que permite crear y manejar endpoints de forma eficiente [3:15]. Cuando un cliente apunta a un endpoint específico, el servidor identifica el método HTTP utilizado y responde en consecuencia.

El flujo completo funciona así:

  • El cliente envía una petición HTTP a un endpoint.
  • El endpoint evalúa el método (GET, POST, PUT o DELETE).
  • El servidor ejecuta la operación CRUD correspondiente sobre la base de datos.
  • La respuesta se envía de vuelta al cliente en formato JSON.

Este modelo es la forma en que un servidor web tradicional opera [3:50]. Desde el momento en que un cliente hace un request, hay múltiples capas que gestionar, y cada una de ellas será implementada en el proyecto final.

Si te interesa profundizar en la construcción de un CRUD API completo con Go, compártelo en los comentarios para que se pueda cubrir en futuros contenidos.