Diferencia entre revisiones de «Teoría sobre o servizo web»
Línea 101: | Línea 101: | ||
== Códigos de estado == | == Códigos de estado == | ||
Os códigos de estado (status code) son números de tres cifras que indican a resposta do servidor a unha determinada petición. Os principais son: | Os códigos de estado (status code) son números de tres cifras que indican a resposta do servidor a unha determinada petición. Os principais son: | ||
− | * 1XX | + | * '''1XX Mensaxes informativas''': |
** 100 Continuar (continuar coa petición). | ** 100 Continuar (continuar coa petición). | ||
− | * 2XX | + | * '''2XX Operacións exitosas''': |
** 200 OK (todo correcto). | ** 200 OK (todo correcto). | ||
** 206 Contenido Parcial (Partial Content). | ** 206 Contenido Parcial (Partial Content). | ||
− | * 3XX Redirección | + | * '''3XX Redirección''': |
** 301 Mudado Permanentemente (Moved Permanently). | ** 301 Mudado Permanentemente (Moved Permanently). | ||
** 307 Redirección Temporal (Temporary Redirect). | ** 307 Redirección Temporal (Temporary Redirect). | ||
− | * 4XX Error por parte | + | * '''4XX Error por parte do cliente''': |
** 401 No autorizado (Unauthorized). | ** 401 No autorizado (Unauthorized). | ||
** 403 Prohibido (Forbidden). | ** 403 Prohibido (Forbidden). | ||
** 404 No Encontrado (Not Found), pode ser que non se escribira ben a URL, con tildes,... Este erro é coñecido por ser do máis común. | ** 404 No Encontrado (Not Found), pode ser que non se escribira ben a URL, con tildes,... Este erro é coñecido por ser do máis común. | ||
** 408 Tiempo de Espera Agotado (Request Timeout). | ** 408 Tiempo de Espera Agotado (Request Timeout). | ||
− | * 5XX Error por parte | + | * '''5XX Error por parte do servidor''': |
** 500 Error Interno (Internal Server Error). | ** 500 Error Interno (Internal Server Error). | ||
** 503 Servicio No Disponible (Service Unavailable). | ** 503 Servicio No Disponible (Service Unavailable). |
Revisión del 14:27 12 nov 2020
Sumario
WWW e HTTP
HTTP (Hypertext Transfer Protocol) foi creado en 1990 no CERN como un medio para compartir datos científicos a nivel internacional de xeito rápido e económico.
O seu método máis común de intercambio de informácion e a World Wide Web (WWW), pola que se transfiren páxinas web os nosos ordenadores ou dispositivos móbiles.
A World Wide Web é un sistema de documentos enlazados entre sí de forma transparente para o usuario, e accesibles a través de internet.
Para facer posible ese funcionamento existen unhas aplicación específicas chamadas navegadores; e nelas os enlaces son visibles porque o punteiro do rato cambia de forma (habitualmente dunha frecha a unha man con un dedo extendido) o pasar por encima, ou por estar remarcadas noutra cor.
Foi Berners-Lee quen uníu o hipertexto e internet, e quen plantexou a WWW en 1990 como un prototipo co primeiro navegador e o primeiro servidor; o crecemento exponencial no seu uso é por todos coñecido
Enderezos URL (Uniform Resource Locator)
Os Localizadores Uniformes de Recursos, URL (Uniform Resource Locator) están formados por unha secuencia de caracteres (normalmente en ASCII) de acordo a un formato estándar, que se usa para nomear recursos en internet por e para a súa localización de forma única.
Estos recursos poden ser páxinas web, documentos, imáxenes, vídeos, sonidos, programas, etc.
Algúns exemplos serían:
//servidor/impresora //192.168.0.1/leeme.txt http://edu.xunta.gal http://alex:123456@www.udc.es:80/alex/index.html;lg=es?l=34;c=es#info
Os elementos máis habituales son:
- Scheme: protocolo co que se negocia a transmisión ou comunicación. Os máis famosos e universales son http (para páxinas web), mailto (para correo),
e ftp. Usa os separadores barra-barra (//) ou dos puntos-barra-barra (://) se é un protocolo.
- Userinfo: pode levar o nome de usuario so ou co seu contrasinal. O userinfo precede o separador arroba (@) e utiliza os dous puntos(:) entre usuario e contrasinal.
- Host: pode ser unha FQDN (www.udc.es), un nome de dominio (udc.es), unha IPv4 (192.168.0.1) ou unha IPv6 ([FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]).
- Port: porto de comunicación do protocolo. Pode ser oficial, oficioso ou reconfigurado polo administrador do servidor. Vai precedido polo separador dous puntos (:).
- Path: dentro da computadora, é a ruta onde se aloxa o recurso ou documento (permite direccionamiento relativo con directorio raíz e pode usar punto-punto-barra para a carpeta pai [../]). O separador de directorios é a barra (/). Os arquivos teñen un nome e soen ter unha extensión (separados por un punto [.]). Tamen poden levar parámetros separados por punto e coma (;).
- Query: consultas. Son unha ou varias variables, precedidas da interrogación (?) e con un valor precedido por un símbolo igual (=).
- Fragment: o fragmento referencia unha zona no documento, un marcador ou uhna posición. Vai precedido da almohadilla (#).
Máis exemplos onde poder localizar algúns dos elementos:
ftp://usuario:contrasinal@www.dominio.com https://www.google.com/search?sxsrf=ALeKk02BIhLoS691zVZTRGdAq3h6V54lqw%3A1605147843062&ei=w5 https://wiki.cifprodolfoucha.es/index.php?title=Teor%C3%ADa_sobre_o_servizo_web#WWW_e_HTTP
Protocolo HTTP
O Protocolo de Transferencia de Hipertexto, HTTP (HyperText Transfer Protocol), é o utlizado maiormente para as transaccións da web (entre servidores HTTP e clientes HTTP ou navegadores). Usa por defecto o puerto 80. Foi desarrollado polo W3C e a IETF. Como este servizo de cliente/servidor non tiña "memoria", inventáronse sistemas para almacenar as variables de sesión (como as cookies).
Formato das mensaxes
Peticións
Nas transaccións HTTP, o cliente envía o servidor unha mensaxe (petición), que conten unha cabecera e opcionalmente algún dato. O encabezado conten a liña de petición (request); os seus elementos son:
- método (GET en la petición)
- URL relativa (/index.html no exemplo)
- versión do protocolo HTTP (1.1 no exemplo)
EXEMPLO GET /index.html HTTP/1.1 Host: www.google.com Accept-Language: en User-Agent: IE 7
Os métodos máis usados nas peticións son GET e POST:
- GET: pide a representación do recurso especificado.
- POST: presenta os datos que se procesarán ó recurso especificado (por exemplo un formulario, form, de HTML). Os datos incluense no corpo da
petición.
Esto pode dar lugar á creación dun novo recurso, á actualización de recursos existentes ou a ambos (páginas web dinámicas, consultas a bases de datos,etc.).
Outros métodos: OPTIONS, HEAD, PUT, DELETE, TRACE
Despois da liña de petición veñen varias cabeceras (headers), que conteñen parámetros de petición, despois van dous puntos (:) e, por último, o valor desa petición. Exemplos de parámetros son:
PENDIENTE!!!
Respostas
A resposta do servidor HTTP suele conter un encabezado e un corpo:
HTTP/1.1 200 OK Date: Fri, 31 Dec 2009 23:59:59 GMT Content-Length: 1221 Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Etag: "3f80f-1b6-3e1cb03b" Content-Type: text/html; charset=UTF-8 <html> <body> (Contido da páxina web)... </body> </html>
A liña principal, ou liña de respuesta, conten a versión de HTTP soportada polo servidor e un código e mensaje de «erro» ou estado. Despois aparecen os parámetros de resposta. No exemplo podemos ver:
Content-Length: 1221 //Lonxitude do corpo en bytes. Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) //Tipo de servidor. Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT //Fecha e hora de última modificación do ficheiro ou recurso requerido. Content-Type: text/html; charset=UTF-8 //Tipo de contido aceptado e o código aceptado.
Códigos de estado
Os códigos de estado (status code) son números de tres cifras que indican a resposta do servidor a unha determinada petición. Os principais son:
- 1XX Mensaxes informativas:
- 100 Continuar (continuar coa petición).
- 2XX Operacións exitosas:
- 200 OK (todo correcto).
- 206 Contenido Parcial (Partial Content).
- 3XX Redirección:
- 301 Mudado Permanentemente (Moved Permanently).
- 307 Redirección Temporal (Temporary Redirect).
- 4XX Error por parte do cliente:
- 401 No autorizado (Unauthorized).
- 403 Prohibido (Forbidden).
- 404 No Encontrado (Not Found), pode ser que non se escribira ben a URL, con tildes,... Este erro é coñecido por ser do máis común.
- 408 Tiempo de Espera Agotado (Request Timeout).
- 5XX Error por parte do servidor:
- 500 Error Interno (Internal Server Error).
- 503 Servicio No Disponible (Service Unavailable).
Cookies
As cookies (RFC 2109) ou «galletiñas» son ficheiros que o navegador do cliente graba en disco duro a petición do servidor. Estos arquivos almacenan datos que normalmente utiliza o servidor. Utilizanse para:
- Gardar os nomes de usuario e contrasinais (poden ser útiles para «cestas da compra», blogs e outras páxinas que necesitan manter datos entre sesións).
- Recopilar hábitos de navegación dos usuarios con usos publicitarios.
Cando o servidor envía unha resposta inclue o parámetro Set-Cookie: name=value e a partires dese íntre, o navegador do cliente engade o parámetro Cookie: name=value a todas as peticiones dese servidor
Nos navegadores podense activar, desactivar ou preguntar cada vez polo uso das cookies antes de que se vaia a enviar algunha.
Protocolo HTTPS
O Protocolo Seguro de Transferencia de HiperTexto, HTTPS (HyperText Transfer Protocol Secure), e un protocolo similar a HTTP pero que ofrece máis seguridade cun Protocolo de Capa de Conexión Segura, SSL (Secure Sockets Layer) ou con Seguridade da Capa de Transporte, TLS (Transport Layer Security).
Utiliza o porto 443 e empregase para a transferencia de contrasinais, pagos con tarxeta, etc.
As URL das páxinas comezan por https:// e a súa especificación sobre TLS está no RFC 2818.
O servicio HTTPS traballa cunha chave de sesión que se negocia nun handshake («apretón de manos»).
A seguinte taboa resume as diferenzas máis significativas desde a perspectiva do usuario.
HTTP | HTTPS | |
---|---|---|
Transmision | Sin cifrar | Cifrada |
Certificado | No | Si |
Número de puerto | 80 | 443 |
URL | http:// | https:// |
Son os clientes cos que podemos acceder os recursos web. Podedes ver nesta gráfica a súa evolución en termos de cuota de mercado e eiquí unha lista dos navegadores e as súas capacidades.
Os máis coñecidos na actualidade son:
- Safari, desenvolto por Apple para os seus dispositivos Mac e Iphone
- Mozilla Firefox, software libre moi centrado na privacidade
- Google Chrome, desenvolvido por Google, é o máis utlizado na actualidade
- MIcrosoft Edge, desenvolvido por Microsft para substituir o obsoleto Internet Explorer
Algunhas diferencias que poden decantar o seu uso a favor dun ou outro son:
- o rendemento
- o uso da memoria
- o soporte que se fai as funcionalidades de HTML5
- o soporte as tecnoloxías javascript
- o soporte que se fai a outros estándares
- a variedade e calidade dos plugins que permiten ampliar as súas funcionalidades
- as posibilidades de accesibilidade
- a compatibilidade coas aplicacións web que se poidan estar utilizando na túa empresa
Servidores web
Un servidor web ou servidor HTTP é un programa que procesa unha aplicación do lado do servidor, realizando conexiones bidireccionales ou unidireccionales e síncronas o asíncronas co cliente e xenerando unha resposta nunha aplicación (normalmente o navegador) do lado do cliente, xeralmente usando os protocolos HTTP e HTTPS para estas comunicacións.
As aplicaciones web son aquelas que os usuarios poden utilizar accedendo a un servidor web ou un servidor de aplicacións desde o seu navegador.
Algún dos servidores web más coñecidos é utilizados son:
Tarefa 1
Instala Zap proxy ou fiddler e captura peticións http.
Explica:
- Cómo funcionan estes programas? Qué funcionalidade práctica lles atopas? Atopas algunha diferencia entre ambos?
- Saberías explicar unha petición e resposta HTTP con algún destes programas?
Dous consellos:
- Se non queres instalar no teu equipo, podes usar máquinas virtuais
- Podes instalar so dous, pero en cada momento utiliza só un... porque os dous fan cousas similres e poderán "chocar" no seu funcionamento
Tarefa 2
- Coñeces lynx? Que é? Qué utilidade lle podes atopar?
- Instala e accede co mesmo a unha web. Amosa unha captura