Conocer y comprender c贸mo se realizan las conexiones hacia los servidores a trav茅s de internet y sus implicaciones en el desarrollo de servidores

1

Bienvenida y presentaci贸n del curso

2

Qu茅 es Node y c贸mo instalarlo

3

驴Qu茅 son y c贸mo se usan las peticiones HTTP?

4

M茅todos, cabeceras y estados

5

Cuerpo y query de la petici贸n

Crear un servidor HTTP en Javascript, y comenzar a escuchar y responder peticiones desde un cliente .

6

Crear un servidor HTTP desde NodeJS

7

驴C贸mo pueden venir las peticiones?

8

Recibir informaci贸n desde el cliente: Body y Query

9

Informaci贸n contextual: Leer las cabeceras

10

Tipos de respuesta: Vac铆a, plana, con datos y estructurada

11

Respuestas coherentes

12

Servir archivos est谩ticos

13

Errores: C贸mo presentarlos e implicaciones en la seguridad

Comprender y desarrollar la arquitectura b谩sica de un backend en NodeJS, y comunicarse entre m贸dulos

14

Conceptualmente: Rutas, controladores y bases de datos

15

Rutas y capa de red: Responsabilidades y l铆mites

16

Controladores: Definiendo la l贸gica de negocio

17

Almacenando la informaci贸n en una base de datos

Utilizar una base de datos para definir, modelar, almacenar y recuperar la informaci贸n de nuestra aplicaci贸n

18

Tipos de Bases de Datos: Relacionales y No Relacionales

19

Crear y Configurar tu Base de Datos con MongoDB

20

MongoDB: Almacenar y leer datos

21

MongoDB: Actualizar datos

22

MongoDB: Consultar datos

23

MongoDB: Eliminar Datos

24

Gestionar conexiones a la base de datos desde la API

Uso de entidades para crear aplicaciones escalables

25

Escalando la arquitectura: M煤ltiples entidades

26

Relacionando nuestras entidades

27

C贸mo recibir ficheros desde NodeJS

28

Guardar el fichero en el servidor

Conocer el protocolo de websockets, e implementar comunicaci贸n cliente/servidor con SocketIO.

29

WebSockets: Qu茅 son, por qu茅 son interesantes y c贸mo usarlos

30

Manejo de Websockets con NodeJS

31

Conectar la API al servidor de WebSockets

Revisi贸n de lo aprendido, y pr贸ximos pasos

32

Revisi贸n y pr贸ximos pasos

33

Tips para escalar nuestro proyecto

Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Aprende Ingl茅s, Programaci贸n, AI, Ciberseguridad y m谩s a precio especial.

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

2 D铆as
21 Hrs
7 Min
0 Seg

M茅todos, cabeceras y estados

4/33
Recursos

M茅todos HTTP:

  • GET: Recoger informaci贸n del servidor.
  • POST: A帽adir informaci贸n al servidor.
  • PUT: Reemplazar informaci贸n en el servidor.
  • PATCH: Actualizar parte de la informaci贸n.
  • DELETE: Eliminar informaci贸n del servidor.
  • OPTIONS: Pedir informaci贸n sobre m茅todos (saber si podemos ejecutar alguno de los m茅todos anteriores).

Las cabeceras ser谩n el env铆o al servidor de c贸mo queremos hacer la petici贸n.

Los estados son n煤meros que indica el estado de la petici贸n:

  • 2XX: Todo ha ido bien.
  • 3XX: La petici贸n se ha redirigido.
  • 4XX: Errores del cliente.
  • 5XX: Ha habido un error al procesar la petici贸n.

Aportes 72

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Sitios sugeridos que contienen informacion sobre los codigos de estado de peticion de HTTP:

Httpstatuse

Http.cat

GET: Recoger informaci贸n del servidor.
Ejemplo: Informaci贸n de un producto.
Listado de elementos(productos lista de chats)
ver una p谩gina traer un archivo css.

POST: A帽adir informaci贸n al servidor.
Ejemplo: A帽adir un producto nuevo.
Enviar un formulario.
crear un nuevo chat.
PUT: Reemplazar informaci贸n en el servidor.
Ejemplo: Cambiar el contenido de una p谩gina.
Reemplazar un producto por otro.
Editar un mensaje.

PATCH: Actualizar parte de la informaci贸n.
Ejemplo:
Cambiar la foto de un usuario.
Modificar el precio de un producto.

DELETE: Eliminar informaci贸n del servidor.
Ejemplo:
Eliminar un mensaje.
quitar un producto del carrito.

OPTIONS: Pedir informaci贸n sobre m茅todos (saber si podemos ejecutar alguno de los m茅todos anteriores).
Ejemplo:
Saber si puedes ejecutar POST, PUT, PATCH o DELETE

  1. Metodos:
    -GET: recoger informacion del servidor:listas, traer archivos, css
    -POST: a帽adir informacion
    -PUT: reemplazar informacion: contenido de una pagina
    PATCH: cuando queremos modificar solo una parte de la informacion
    DELETE: eliminar informacion, productos del carrito por ejemplo.
    OPTIONS: pedir informacion sobre metodos.
    Saber si podemos ejecutar los anteriores

  2. Cabeceras:
    Nos dan informacion contextual de la petici贸n: Como quiero hacerlo:

Request: Autenticacion,cache, indicaciones:
-Cookies: permiten compartir informacion entre peticiones, guardar info para mantener la sesion
-CORS: manejar informacion desde fuera de nuestro servidor, cuando consume informacion desde un lado externo
Access-Control-Allow-Origin, desde donde puedo consumir
-ACCEPT: Define el contenido que puede aceptar por ejem: codificacion UTF-8 archivos js
-Autenticacion: Para poder pedir cosas al servidor
-Cache: Almacenamiento temporal, gestionar durante cuanto tiempo la respuesta sera la misma, evita menos peticiones pues las almacena
-Estados: Numero que indica lo que paso con la peticion:
200: Ok
201-Crea
300- Redireccion de la peticion, por el recurso
400-40x Errores del cliente
500- Error interno del servidor

No cabe duda de que, Platzi, ha comprendido a su cliente (cursos individuales). Me encanta cuando te explican un tema a profundidad (resolver dudas).

Me encanta que explique estos conceptos tan importantes 馃槂

No conoc铆a el m茅todo PACH y OPTIONS

Sin palabras, simplemente fue una gran clase.

Metodos: lo que se quiere realizar al servidor (
GET = cuando se quiere obtener infotrmacoins del servidor,
PUT = remplaza infoprcmacion en el servidor es decir actualizaciones,
DELETE = se elima informacion por completo,
POST = a帽adir infromacion al servidor ,
PATCH = Actualizacion por partes ,
OPTIONS = sirve pedir informacion de los metodos si se puedne ejecutar los metodos POST, PUT, PATCH o DELETE )

Cabeceras: informacion contextual de la peticion (no es lo que quiero hacer si no como lo quiero realizar)
-Request: el request p煤ede ser POST, PUT, PATCH, Autentication, cache, condiciones, cors, cookies
-cookies = compartir informacion entre peticiones
-cors (cross Origin Resource Sharing) = compartir informacion afuera de nuestro servidor (Access-Control-Allow-Origin) 
-accept: esta solo indica que contino va a aceptar (Accept, Accept-Charset, Accept-Encoding)
- Autenticaci贸n: se asegura que puedes realizar una solicitud al servidor (Authorization).
- Cache  = gestiona por cuanto tiempo la respuesta sera la misma (Cache-Control, Expires)

Estados: indica con un numero lo que a pasado en la peticion.
	200: ok
	201: Created
	Las que empiecen con 3 la peticion se redirigido
	301: Moved permanently
	304: Nor Modified
	errores: del cliente
	400: bag request
	401: Unauthorized
	403: Forbidden
	404: nor found
	errores: del servidor
	500: ha habido algun problema interno

Dato curioso: Existe un c贸digo de error **鈥淗TTP 418 Soy una tetera鈥 **el cual indica que el servidor se reh煤sa a preparar caf茅 porque es una tetera jajajaja.

Al parecer proviene de la creaci贸n de un protocolo de broma HTCPCP (Protocolo de Control de Cafeteras de Hipertexto) publicado el 1 de abril de 1998 en el d铆a de los inocentes.

Mas info:

https://developer.mozilla.org/es/docs/Web/HTTP/Status/418
https://es.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Control_Protocol

HTTP es un protocolo con sesiones, pero sin estados, es decir que no guarda ning煤n dato entre dos peticiones en la m铆sma sesi贸n.

Entonces para saber que dos peticiones tienen su origen en el m铆smo navegador web de tal forma que nos permita mantener la sesi贸n del usuario abierta se utilizan las cookie HTTP (cookie web o cookie de navegador).
Una cookie HTTP es una peque帽a pieza de datos que un servidor envia a el navegador web del usuario. El navegador guarda estos datos y los env铆a de regreso junto con la nueva petici贸n al mismo servidor.
Se utilizan principalmente para tres prop贸sitos:

  1. Gesti贸n de Sesiones: Inicios de sesi贸n
  2. Personalizaci贸n: Preferencias de usuario, temas y otras configuraciones.
  3. Rastreo: Guardar y analizar el comportamiento del usuario

Para el almacenamiento general del lado del cliente se recomienda utilizar APIs modernas como localStorage, sessionStorage e IndexedDB ya que las cookies se envian con cada solicitud al servidor y esto puede empeorar el rendimiento.

GET - > Obtener informaci贸n.
POST -> A帽adir informaci贸n al servidor.
PUT -> Editar Informaci贸n.
DELETE -> Borrar Informaci贸n.
PATCH -> Actualizar cierta parte dela informaci贸n.
OPTIONS -> Pedir informaci贸n sobre los m茅todos.

En la request:

  • POST
  • PUT
  • PATCH
    Podemos tener:
  • Autenticaci贸n: Aseg煤rate de que puedes pedir cosas al servidor
    Authorization
  • Cache: Almacenamiento temporal. Gestionar durante cuanto tiempo la respuesta ser谩 la misma
    Cache-Control
    Expires
  • Indicaciones
  • Condiciones
  • Cors (Cross Origin Resource Sharing) : Manejar informaci贸n desde fuera de nuestro servicio
    Access-Control-Allow-Origin
  • Cookies : Compartir informaci贸n entre peticiones.
  • Accept: Define el contenido que acepta
    Accept
    Accept-Charset
    Accept-Encoding

Lo m谩s interesante de todo es el tiempo implementado para explicar cada t茅rmino

Aqu铆 les dejo una explicaci贸n un poco m谩s detallada de c贸mo se deben utilizar los c贸digos de estado.
https://adictec.com/codigos-de-estado-http/

Metodos

GET recoger informacion del servidor - PUT remplaza informacion en el servidor y para editarlo- DELETE eliminar completamente infomarcion del servidor- POST a帽adir informacion al servidor- PATCH cuando no queremos editar todo el producto- OPTIONS con este podemos pedir informacion de que metodos podemos hacer en la api

Cabezaras

Nos dan informacion contextual de la petici贸n. No es lo que quiero hacer sino como puedo hacerlo.

Cookies => sirve para compartir informacion entre las peticiones.

CORS => Cross Origin Resource Sharing manejar informacion desde fuera de nuestro servicio.

Accept => define el contenido que se acepta.

Authorization => Asegurarse de que puedo pedir cosas al servidor.

Cache-Control o Expires => Gestionar dentro de cuanto tiempo la respuesta sera la misma.

Estado.

Es un n煤mero que indica lo que a pasado con la petici贸n.

2xx => que todo a hido bien por ejemplo 200 ok, 201 created

3xx => es que me redirecciona a otra parte por ejemplo 301 moved permanetly

4xx => error. 400: bad request. 401: unauthorized. 403: Forbidden prohibido se quien eres pero no te puedo dejar pasar comisario. 404: Not found.

5xx => errores de servidor. 500: Internal server error.

No se si lo abran compartido antes pero una pagina muy buena para ver estados

https://http.cat/

Pregunta de examen:
驴Qu茅 m茅todo HTTP se usar铆a para cambiar la foto de un usuario?

Una pregunta! 驴De qu茅 cache habla en el minuto 5:20?驴La cach茅 del servidor o del usuario?

Los estados que empiecen con:
2xx = Todo OK.
3xx = Sucedi贸 una redirecci贸n.
4xx = Errores de cliente.
5xx = ocuri贸 un problema interno en el servidor

M茅todos

Es el verbo, la acci贸n que le dice al server 鈥渓o que queremos hacer鈥

  • GET 鈫 Solicita informaci贸n del servidor
    Informaci贸n de productos
    Listado de elementos
    Ver pagina HTML o un archivo CSS o JS
  • POST 鈫 A帽ade informaci贸n al server
    A帽adir un producto nuevo
    Enviar un formulario
  • PUT鈫 Reemplazar informaci贸n en el servidor
    Cambiar un producto por completo
    Cambiar el contenido de una pagina
    Editar un mensaje
  • PATCH 鈫 Actualiza parte de la informaci贸n
    Cambiar la foto de usuario
    Modificar el precio de un producto
  • DELETE 鈫 Elimina informaci贸n del servidor
    Eliminar un mensaje
    Quitar producto de carrito
  • OPTIONS 鈫 Pedir informaci贸n sobre m茅todos (saber si podemos ejecutar alguno de los m茅todos anteriores)

una web con los estados HTTP con memes de gatos

Muy buen profesor! Explica de una forma did谩ctica y sencilla.

Excelente curso

Les comparto este archivo con un 鈥渃heat sheet鈥 de los c贸digos HTTP
Archivo C贸digos HTTP

METODOS:
*Get
*Put
*Delete
*Post
*Patch
*Options

-GET: recoger informacion

  • POST: a帽adir informaci贸n al servidor.
  • PUT: reemplaza informaci贸n en el servidor.
  • PATCH: cambia solo una parte de un objeto en el servidor.
  • DELETE: elimina informaci贸n.
  • OPTIONS: pide informaci贸n acerca de los m茅todos permitidos.

Cookies: Fichero de datos enviado a tu dispositivo (laptop,desktop, telefono, tablet), luego de llenado este fichero que es llenado (al momento de darle aceptar) es enviado al servidor. Entre los distintos usos de estas, esta recordar accesos y habitos de navegacion.

Cors: Utilizado para obtener permisos, para usar recursos seleccionados desde un servidor

ah caray mi profesore es benzema

Metodos:El que define a la petici贸n la acci贸n que queremos hacer
Get:Para retornar informacion del servidor
Post: Para agregar informaci贸n nueva
Put: Para actualizar informaci贸n
Patch: Para ediciones cortas
Delete: Para eliminar informaci贸n
Options: saber si se puede ejecutar alguno de los m茅todos anteriores

A este punto ya se hizo el curso de prework y el curso anterior al de fundamentos de backend

Este tipo de clases siempre es bueno verlas para recordar o reforzar conocimientos en el tema

La notebook del profe es de una marca de computadoras creadas exclusivamente para usar con Linux !
Slimbook

Metodos, cabeceras y estado.

Metodos:

Es el verbo que dice 鈥渓o que queremos hacer鈥 con el servidor.

  • GET: recoger informaci贸n del servidor.

鈫 informaci贸n de un producto

鈫 listado de elementos.

鈫 ver una pagina html o css

  • PUT: reemplazar informaci贸n del servidor

鈫 reemplazar un producto

鈫 editar un mensaje.

  • DELETE: Eliminar informaci贸n del servidor.

鈫抏liminar un mensaje.

鈫抏liminar un producto del carrito

  • POST: a帽adir informacion al servidor

鈫 a帽adir un producto

鈫 enviar un formulario.

  • PATCH: actualizar parte de la informaci贸n.

鈫 cambiar la foto de un usuario

鈫 modificar el precio de un producto.

  • OPTIONS: pedir informacion sobre los m茅todos.

鈫抯aber si puedes ejecutar POST PUT PATCH O DELETE

Cabeceras

Informacion contextual de la petici贸n.

Es como quiero hacerlo, por ejemplo cabecera:

  • autenticacion, asegura de que puedes pedir cosas al servidor

鈫抋uthorization

  • cache, almacenamiento temporal, gestionar durante cuanto tiempo la respuesta es la misma.

鈫抍ache-Control, expires

  • indiaciones
  • condiciones
  • cors: cross origin resource sharing, manejar informacion desde nuestro servicio

鈫扐ccess-Control-Allow, Origin

  • cookes: compartir informacion entre peticiones

鈫抍ookie

  • accept: define el contenido que acepta.

鈫抋ccept, accept-charset, accept-encoding

Estado:

Son los numeros que indica que a pasado con la peticion.

Codigos 2XX

Todo a ido bien

  • 200: OK
  • 201: Created

Codigos 3XX

El recurso se a redirigido

  • 301: Moved permanently
  • 304: Not modified

Codigo 4XX

Errores del cliente.

  • 400: bad request
  • 401: unauthorized
  • 403: forbidden
  • 404: Not found

Codigos 5XX

Ha habido un error al procesar la petici贸n, error de servidor

  • 500: Internal server error

Muy clara la clase

Excelente resumen introductorio de APIs

b谩sicamente esos verbos son parecidos a los de postman

Que bien volver a ver sobre JWT鈥
Espero ampliar el conocimiento acerca de ellos

Cabeceras: Como quiero hacer la petici贸n. Aprend铆 que las cookies son cabeceras

que excelente clase

隆Qu茅 buena explicaci贸n!

Grupo de Whatsapp sobre temas relacionados a JS: https://chat.whatsapp.com/LsR1Zt77zIV2bUw30fMQ3M

excelente!

Excelente curso

Muy buena explicacion es muy sencillo y practico

pinta excelente este curso 馃槂 no como el de spring del cual vengo.

M茅todos: Petici贸n al servidor de lo que queremos hacer.

GET -	> 	Obtener informaci贸n.
POST 	->	 A帽adir informaci贸n al servidor.
PUT 	->	 Editar Informaci贸n.
DELETE 	->	 Borrar Informaci贸n.
PATCH	->	Actualizar cierta parte de la informaci贸n.
OPTIONS ->	Pedir informaci贸n sobre los m茅todos.

BUENA EXPLICACI脫N NODE.JS

B谩sico para entender como funciona todo!

Muy bueno

con los CORS puedeo bloquear el web scraping?

Wow, muy buen clase!!

A pesar de ser conceptos conocidos es muy valiosa esta clase, siempre hab铆a sabido que los m茅todos PUT Y PATCH eran para editar informaci贸n pero no sabia de la diferencias entre ambos, tampoco conoc铆a la utilidad del m茅todo OPTIONS. Todo lo dem谩s excelente tambi茅n.

Que buena clase y bien resumido todo!

Vamo鈥檃lla 馃槃

HTTP tinene estas opciones:
GET
HEAD
POST
PUT
DELETE
TRACE
OPTIONS
CONNECT
PATCH
SEARCH
COPY
LOCK
UNLOCK
MOVE
MKCOL
PROPFIND
PROPPATCH
MERGE
UPDATE
LABEL

Cors
Cross Origin Resource Sharing

Estados:
2XX: Todo ha ido bien.
3XX: La petici贸n se ha redirigido.
4XX: Errores del cliente.
5XX: Ha habido un error al procesar la petici贸n.

los estados de las peticiones!

cabecera: no es lo que quiero hacer sino como lo quiero hacer

Super chevere esta clase.

Excelente contenido

<h1>M茅todos, cabeceras y estados</h1> <h3>M茅todos HTTP:</h3>

Es el verbo que dice lo que queremos hacer al servidor.

  • GET:聽Recoger informaci贸n del servidor.(datos, listas, p谩ginas)
  • POST:聽A帽adir informaci贸n al servidor. (a帽adir un elemento, agregar un formulario, crear un chat)
  • PUT:聽Reemplazar informaci贸n en el servidor. (reemplazar/editar informaci贸n del servidor)
  • PATCH:聽Actualizar parte de la informaci贸n.
  • DELETE:聽Eliminar informaci贸n del servidor.
  • OPTIONS:聽Pedir informaci贸n sobre m茅todos (saber si podemos ejecutar alguno de los m茅todos anteriores).
<h3>Las cabeceras:</h3>

Nos dar谩n informaci贸n contextual de la petici贸n, el c贸mo quiero hacerlo.

  • autenticaci贸n (asegurarte de que puedes pedir cosas al servidor)
  • cache (almacenamiento temporal, durante cuanto tiempo la respuesta ser谩 la misma)
  • indicaciones
  • condiciones
  • cors //cross origin resource sharing// (compartir recursos entre diferentes origenes, si podemos 贸 no manejar informaci贸n desde otro servidor)
  • cookies (comparte informaci贸n entre peticiones, por ejemplo soy tal usuario)
  • accept (tipo de contenido que acepta el servidor)
<h3>Los estados</h3>

son n煤meros que indica el estado de la petici贸n:

  • 2XX:聽Todo ha ido bien.
  • 3XX:聽La petici贸n se ha redirigido.
  • 4XX:聽Errores del cliente.
  • 5XX:聽Ha habido un error al procesar la petici贸n. (servidor)

GET sirve para obtener.
POST sirve para a帽adir (crear o insertar).
PUT sirve para reemplazar o actualizar informaci贸n.
PATCH sirve para actualizar una parte de informaci贸n. Como un parche.
DELETE sirve para eliminar informaci贸n en el servidor.
OPTIONS sirve para pedir informaci贸n sobre los m茅todos POST, PUT, PATCH o DELETE.

Excelente clase y excelente explicacion de parte del profesor!

GET: Obtener o Recoger Informaci贸n.
POST: A帽adir informaci贸n.
PUT: Reemplazar Informaci贸n en el Servidor.
PATCH: Actualizar parte de la informaci贸n.
DELETE: Eliminar Informaci贸n del Servidor.
OPTIONS: PEDIR Informaci贸n sobre los M茅todos.

la explicacion de profesor estuvo fue muy clara y muy bien explicada

<h3>M茅todos, cabeceras y estados</h3> <h4>M茅todos</h4>

GET - Recoger informaci贸n del servidor

  • Informaci贸n de un producto
  • Listado de elementos
  • Ver un p谩gina HTML o un archivo CSS

POST - Anadir informaci贸n al servidor

  • A帽adir un producto
  • Enviar un formulario
  • Crear un nuevo chat

PUT - Reemplazar informaci贸n en el servidor

  • Cambiar el contenido de una p谩gina
  • Reemplazar un producto por otro
  • Editar un mensaje

PATCH - Actualizar parte de la informaci贸n

  • Cambiar la foto de un usuario
  • Modificar el precio de un producto

DELETE - Eliminar informaci贸n del servidor

  • Eliminar un mensaje
  • Quitar un producto del carrito

OPTIONS - Pedir informaci贸n sobre los m茅todos

  • Saber si puedes ejecutar POST, PUT, PATCH o DELETE
<h4>Cabeceras</h4>

Informaci贸n contextual de la petici贸n. "No es el que quiero hacer, sino c贸mo lo quiero hacer"

Request - POST PUT PATCH

  • Autenticaci贸n - Asegurarte de que puedes pedir cosas al servidor
  • Cache Almacenamiento temporal - Gestionar durante cu谩nto tiempo la respuesta ser谩 la misma
  • Cors 鈥淐ross Origin Resource Sharing鈥 - Manejar informaci贸n desde fuera de nuestro servicio
  • Cookies - Compartir informaci贸n entre peticiones
  • Accept - Define el contenido que acepta
  • etc
<h4>Estados</h4>

N煤meros que indican lo que ha pasado con la petici贸n

Todo ha ido bien 2XX

  • 200: Ok
  • 201: Created

La petici贸n se ha redirigido 3XX

  • 301 Moved permanently
  • 304 Not modified

Errores del cliente 4XX

  • 400 Bad request
  • 401 Unauthorized
  • 403 Forbidden
  • 404 Not Found

Errores del servidor, ha habido un error al procesar la petici贸n 5XX

  • 500 Internal server error

S煤per interesante, no sabia nada de los n煤meros, un tema interesante, mi pregunta es si nosotros programaos esos n煤meros o eso va programado internamente a la hora de subir o crear sitios y que generen este tipo de errores?