HTTP
El http es la base de cualquier de informacion en internet.Este sigue el modelo clienet-servidor en el que el cilente(usuario) envia
una solicitud y el servidor responde con datos que solicita el usuario.
Funcionamiento
Opera a nivel de capa de aplicación sobre tcp/ip y se caracteriza por ser un protocolo que no recuerda peticiones anteriores y por ser
de conexion efimera.
conexion:El cliente estable conexion con el servidor.
Petición:Envia una petición HTTP al servidor donde especifica la accion deseada y el recurso(URL/URI).
Procesamiento::Una vez que el servidor reciba la petición, la procesa y busca el recurso para dar una respeusta.
Respuesta:El servidor envia una respuesta al cliente donde incluye un codigo de estado y si este es exitoso, el recurso solicitado.
Cierre:La conexion TCP puede cerrarse o se mantiene abierta para petciones futuras.
Estructura basica.
Linea inicial
Petcion:Incluye el Método, la URI del recurso y la Versión HTTP. (Ej: GET /index.html HTTP/1.1)
Respuesta:Incluye la Versión HTTP, el Código de Estado y el Mensaje de Estado asociado. (Ej: HTTP/1.1 200 OK)
Cabecera
Peticion:Metadatos sobre la petición (Ej: Host, User-Agent, Accept-Language)
Respuesta:Metadatos sobre la respuesta y el servidor (Ej: Date, Server, Content-Type).
Cuerpo
Peticion:Contenido de datos enviado al servidor (Opcional, usado con métodos como POST o PUT).
Respuesta:Contenido del recurso solicitado (Ej: código HTML, imagen, JSON).
Metodos de petición
GET:Es el mas comun y solo debe obtener datos
POST:Envia datos al servidor para que lo procese que seguido crea un nuevo recurso.
PUT:Reemplaza todas las representaciones actuales del recurso de destino con el contenido de la petición.
DELETE:Elimina recursos en especifico.
HEAD:Solicita una respuesta igual a get pero sin el cuerpo de el mensaje, es util para verificar el tamaño y existencia del recurso.
PATCH:Aplica modificaciones parciales a un recurso.
OPTIONS:Describe las opciones de comunicacion en un recurso de destino.
Codigos de respuesta
Son numeros de 3 digitos que el servidor envia en linea principal para indicar la respuesta.
1xx(100-199):Este es informativo,indica si se recibio la peticion y si continua el proces.
2xx(200-299):La accion fue recibida,entendida y aceptada.
3xx(300-399):Redireccion,se necesita realizar una accion adicional para poder completar la peticion.
4xx(400-499):Error de cliente,la peticion es incorrecta o no puede ser cumplida.
5xx(500-599):Error de servidor,el servidor fallo cuando quiso cumplir una valida.