Diferencia entre revisiones de «Apache»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Línea 129: Línea 129:
= Apache =
= Apache =


El servidor [http://httpd.apache.org/docs/current/ Apache] és un dels més recomanats per a utilitzar en qualsevol projecte de web. És flexible, ràpid i eficient, amés:
* Multiplataforma
* Estàndard
* Modular: Sols cal activar el mòduls necessaris i disposa d'una API per programar els mòduls que necessitem.
* Obert i lliure.
* Extensible


= Enllaços =
= Enllaços =

Revisión del 10:55 28 feb 2018

El protocol HTTP (HyperText Transfer Protocol) és un protocol de capa d'aplicació per a la comunicació fonamentalment de la World Wide Web. Encara que hui en dia el seu ús és més divers. S'ha convertit en un estàndard per a la comunicació entre el model i la vista en alguns projectes en moltes tecnologies actuals. El seus usos principals són:

  • Pàgines web
  • Publicació senzilla de fitxers per a descarregar.
  • Comunicació entre client-servidor en aplicacions web, mòbils o altres. (XML, Json)

El protocol HTTP, si es combina amb una capa segura SSL, s'anomena HTTPS i permet una comunicació segura.

Un servidor http necessita:

  • Connexió a Internet
  • Espai en disc
  • Suficient potència per servir simultàniament a molts usuaris en moments puntuals.
  • Un servidor web/http generalment crea un procés nou per cada petició.

Conceptes

  • URL: Uniform Resource Locator

Una URL informa de:

  • El nom DNS de la màquina en la que està el recurs.
  • El protocol en el que es demana (http, https, ftp...)
  • La direcció del recurs en la màquina o la manera d'accedir a aquest recurs.

Una URL per a HTTP completa pot ser:

  http://www.exemple.com:80/~jose/privada/login.php
   ^      ^    ^          ^   ^     ^        ^
   |      |    |          |   |     |        |
Protocol  |  Domini     Port  |  Directori  Document php (retornarà un html)
          |                   |     
          |       Alias de directori personal
   (World Wide Web)

HTTP

El protocol de transferència d’hipertext (HTTP, hyperText transfer pro-tocol) és el motor que dóna vida a Internet, ja que és la base per a la web (www,world wide web).

És en els inicis del protocol HTTP, a mitjans de l’any 1990, quan trobem la versió 0.9. Aquesta versió tenia com a única finalitat transferir dades per Internet en forma de pàgines web escrites en llenguatge de marcatge d’hipertext (HTML, Hyper Text Markup Language). A partir de la versió 1.0 del protocol va sorgir la possibilitat de transferir missatges amb encap- çalaments que descrivien el contingut dels missatges.

El protocol de transferència d’hipertext (HTTP) és un protocol client-ser- vidor força senzill que articula els intercanvis d’informació entre els clients web i els servidors HTTP. HTTP va ser desenvolupat pel consorci W3C i la IETF. Aquesta col·laboració va culminar l’any 1999 amb la publicació d’una sèrie de RFC, el més important dels quals va ser el RFC 2616, que especi- ficava la versió 1.1. Des del punt de vista de les comunicacions, està suportat en els serveis de connexió TCP/IP i funciona de la mateixa manera que la resta de serveis propis dels entorns UNIX.

Tècnicament, un procés servidor escolta en un port de comunicacions TCP (per defecte, el 80) i espera les sol·licituds de connexió dels clients web. Una vegada establerta la connexió, el protocol TCP s’encarrega de mantenir la comunicació i garantir un intercanvi de dades lliure d’errors.

El protocol de transferència d’hipertext es basa en operacions senzilles de sol·licitud/resposta. Quan un client estableix una connexió amb un servi- dor i envia un missatge amb les dades de la sol·licitud, el servidor respon amb un missatge similar, que conté l’estat de l’operació i el seu resultat possible. Totes les operacions poden adjuntar un objecte o recurs sobre el qual actuen; cada objecte web (document HTML, arxiu multimèdia o apli- cació CGI) és conegut pel seu localitzador uniforme de recursos (URL, uniform resource locator). Els recursos poden ser arxius, el resultat de l’execució d’un programa, una consulta a una base de dades, la traducció automàtica d’un document, etc.

HTTP és un protocol sense estat, és a dir, no guarda cap informació sobre connexions anteriors. El desenvolupament d’aplicacions web freqüent- ment necessita mantenir estat. Per això s’utilitzen les galetes ( cookies), és a dir, la informació que un servidor pot emmagatzemar en el sistema client. Això permet que les aplicacions web institueixin la noció de “ses- sió”, i, alhora, permet rastrejar usuaris, ja que les galetes es poden emma- gatzemar en el client durant un temps indeterminat

Etapes d'una comunicació en HTTP

  1. Un usuari accedeix a una adreça d’Internet (URL) seleccionant un enllaç d’un document HTML o introduint-la directament a la barra de navegació d’un navegador web des de la perspectiva del client web.
  2. El client web descodifica l’adreça d’Internet (URL) separant-ne les diferents parts. És així com s’identifiquen el protocol d’accés, l’adreça del servidor de noms de domini (DNS, Domain Name Server) o d’Internet (IP) del servidor, el possible port opcional (el valor per defecte és el 80) i l’objecte del servidor requerit.
  3. S’obre una connexió TCP/IP amb el servidor cridant el port TCP corresponent. Es fa la petició. En conseqüència, s’envien l’ordre necessària (GET, POST, HEAD, etc.), l’adreça de l’objecte requerit (el contingut de l’adreça d’Internet del servidor), la versió del protocol HTTP utilitzada (en la major part de les ocasions és HTTP/1.0) i un conjunt variable d’informació que inclou dades sobre les capacitats del navegador web, dades opcionals per al servidor, etc.
  4. El servidor retorna la resposta al client. Aquesta resposta consisteix en un codi d’estat i el tipus de dada amb extensions multipropòsit de correu d’Internet (MIME, Multipurpose Internet Mail Extension) de la informació de tornada, seguit de la mateixa informació.
  5. Es tanca la connexió TCP. Aquest procés es repeteix en cada accés que es faci al servidor HTTP. Per exemple, si es recull un document HTML que conté quatre imatges, el procés de transició mostrat amb anterioritat es repeteix cinc vegades, és a dir, una pel document HTML i quatre per les imatges.

Missatge de petició

El missatge de petició està format per:

  • Línia de petició, com GET /images/logo.gif HTTP/1.1, que sol·licita un recurs anomenat /images/logo.gif al servidor
  • Capçaleres, com ara Accept-Language: ca (En el cas de HTTP/1.1 cal dir el HOST)
  • Una línia en blanc
  • El cos del missatge (opcional)

Exemple:

GET / HTTP/1.1 
host: web.simarro

La línia de petició i les capçaleres han d'acabar totes amb <CR><LF> (és a dir, Carriage Return (retorn de carro) seguit per un Line Feed). La línia en blanc només ha de ser <CR><LF>, sense cap espai. En el protocol HTTP/1.1 totes les capçaleres, excepte Host, són opcionals.

Una línia de petició que només contingui la ruta del fitxer és acceptada pels servidors per tal de mantenir la compatibilitat amb els clients HTTP anteriors a l'especificació HTTP/1.0 .

Mètodes de petició

Mètodes segons l'especificació RFC 2616 que correspon a HTTP/1.1 .

L'HTTP defineix vuit maneres (a vegades anomenats "verbs") d'indicar l'acció destijada que s'ha de dur a terme sobre el recurs. El que el recurs representa depèn de la implementació de cada servidor. Normalment però, aquest recurs és el contingut d'un fitxer, o la sortida d'un executable resident al servidor.

HEAD
Sol·licita una resposta, idèntica a la que es generaria amb una consulta GET, però sense el cos de la resposta. Aquesta comanda és útil per aconseguir les meta-dades incloses en la capçalera de la resposta, sense haver-se d'enviar tot el contingut.
GET
Sol·licita una representació del recurs especificat. Noti's que GET no s'ha d'usar per operacions que tinguin efectes col·laterals, com ara accions sobre aplicacions web. La raó és que el GET escriu les dades en la URI. Exemple: /index.php?page=main&lang=es
POST
Envia dades per a ser processades (p. ex, en un formulari HTML) a un recurs específic. Les dades s'inclouen en el cos de la petició. Això pot implicar la creació d'un nou recurs o l'actualització d'aquest si ja existeix (o ambdós).
PUT
Apuja una representació del recurs especificat. Els hostings compartits no solen tindre habilitat PUT. Però en teoría és millor que POST per a penjar alguna cosa, ja que es crea un socket en el servidor i la càrrega és més directa.
DELETE
Esborra el recurs especificat.
TRACE
Retorna la consulta rebuda, perquè el client pugui veure quines coses estan afegint o canviant els servidors intermitjos.
OPTIONS
Retorna els mètodes HTTP que el servidor suporta per a una URL determinada. Es pot fer servir per esbrinar la funcionalitat del servidor web enlloc d'un recurs específic.
CONNECT
Converteix la connexió de petició en un túnel TCP/IP transparent, normalment per facilitar comunicacions xifrades amb SSL (HTTPS) a través d'un proxy HTTP no xifrat.

Els servidors han d'implementar com a mínim els mètodes GET i HEAD HTTP 1.1 Section 5.1.1 i, quan sigui possible, també el mètode OPTIONS.

Apache

El servidor Apache és un dels més recomanats per a utilitzar en qualsevol projecte de web. És flexible, ràpid i eficient, amés:

  • Multiplataforma
  • Estàndard
  • Modular: Sols cal activar el mòduls necessaris i disposa d'una API per programar els mòduls que necessitem.
  • Obert i lliure.
  • Extensible

Enllaços

Utilitats

curl sense hosts