conceptos basicos

9 views
Skip to first unread message

Marcos Lorenzo

unread,
May 7, 2011, 2:30:10 PM5/7/11
to programacion_inicios
vamos a empezar desde mañana (Domingo, dia 8 de Mayo de 2011) y desde
las catacumbas para ir viendo la luz poco a poco...

Marcos Lorenzo

unread,
May 8, 2011, 4:20:46 AM5/8/11
to programacion_inicios
<b>Funcionamiento interno</b>

<u>Petición al servidor</u>

Cuando ell usuario/cliente se conecta a una web, nos pide unos datos
desde sus navegador web a un odenador servidor de datos. Esta
petición va contenida en una cabecera HTTP request enviada desde el
navegador, utilizando los protocolos tcp/ip y http esencialmente, a un
servidor de datos el cual deberá tener instalado el software adecuado
para "captar" esos datos y entre ellos se encuentra el servidor web y
también se puede encontrar nuestro intérprete de lenguaje php.

<u>Ejemplo de una cabecera de peticion de datos a un servidor google
con respecto al texto de unos de estos post:</u>

Cabecera de petición del
cliente---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

https://mail.google.com/mail/channel/bind?VER=8&at=AF6bupMZj3tB6X2jbJTguiphzHLKtP480A&it=6&SID=B7518FBF91052D10&RID=37445&AID=132&zx=eaquoac2i2cl&t=1

POST /mail/channel/bind?
VER=8&at=AF6bupMZj3tB6X2jbJTguiphzHLKtP480A&it=6&SID=B7518FBF91052D10&RID=37445&AID=132&zx=eaquoac2i2cl&t=1
HTTP/1.1
Host: mail.google.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:
1.9.2.17) Gecko/20110420 Firefox/3.6.17
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/
*;q=0.8
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer:
https://mail.google.com/mail/?ui=2&view=js&name=main,tlist&ver=y3sQ9-rRGTY.es.&am=!_pZ5EFJLpKVvDX1j2H4x8nizD6xH5yWp5-gzsfDXQfCS-lR-2Rml7UP6TA&fri
Content-Length: 72
Cookie: S=gmail=p9S2eO_vRdAY5HMO0JBbMw:gmproxy=VrZOURA3RTSxOvumF29ruw;
GX=DQAAAJoAAABubbemfPQzB3n9a7viyUZuwf6neKGzeSfyFDzw3U9-pcVGiHYI5au1aJ-
QtgkqfemBh6Nrk3hJp6ME5wPrgUceL-
WdBGiwVyc_jyi6HH1yXrOcXJvcdeC7LebvuwBGZ2ajNY0EGiU3U76UoOTDTOIUmP0f1KjoudjDSF08W5Fpl2cNnwG6dBlgD3AEwMPV-
ifNxmVrgoB_LaK-fnK_CNFX; GMAIL_AT=AF6bupMZj3tB6X2jbJTguiphzHLKtP480A;
GMAIL_ANS=1; gmailchat=xxx...@gmail.com/534394;
SID=DQAAAJcAAAAZgTPgUYzOp5wPbbgJAyMkUVDsLSfiOvw3noztCSz_kVMDlZCBARzbAMDxJ1pT07bqB4OQo0ySIhcisRvRWoHYD9eLNdhuuSI8bz53s-
zqS6dJai7XAuuasLWgv049m7XNrIZCSiZFh6fJSKD8w1hG64kb3ImoKH6BZDj1LjFTBgMXArNMNbJ7QrEagxl1vzTiI-
Qa3PNYVeF0p6C9f89U; HSID=Al4Ic7V41dFWajmDM; SSID=AjwxOB6vHldavPXOO;
PREF=ID=7405855571fa7611:FF=0:TM=1304836249:LM=1304836249:GM=1:S=sm1FLdmpql6UFgds
Pragma: no-cache
Cache-Control: no-cache
count=1&ofs=34&req0_type=i&req0_time=12&req0_evtype=mousemove&req0__sc=c

Cabecera de respuesta del
servidor-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Date: Sun, 08 May 2011 07:12:49 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Length: 13
Server: GSE

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<i>Estos datos enviados en la cabecera tienen su explicación:</i>

1. <i>La línea de petición (request line) tienes tres partes:</i>

a.<i> La ruta en el servidor al recurso que solicita el usuario/
cliente</i>, en nuestro caso es la siguiente:


https://mail.google.com/mail/channel/bind?VER=8&at=AF6bupMZj3tB6X2jbJTguiphzHLKtP480A&it=6&SID=B7518FBF91052D10&RID=37445&AID=132&zx=eaquoac2i2cl&t=1

b. <i>El método http usado para realizar la petición</i>, en
nuestro caso es el siguiente:

POST /mail/channel/bind?
VER=8&at=AF6bupMZj3tB6X2jbJTguiphzHLKtP480A&it=6&SID=B7518FBF91052D10&RID=37445&AID=132&zx=eaquoac2i2cl&t=1

c. <i>La versión de http usada</i>, y en nuestro caso es la
siguiente:

HTTP/1.1

2. <i>El encabezado http (header)</i> contiene información que tipo<
de documento el cliente está solicitando y el formato de éste que
aceptará así como también información acerca del navegador web
cliente, la fecha de la petición y otra info de datos necesarios para
el funcionamiento correcto de la web visitada enviados desde el
cliente al servidor. Existen tres partes bien diferenciadas de como se
divide esta info en el header:

a. <i>General</i>: Info con respecto al navegador cliente.

b. <i>Entitdad (entity)</i>: Info sobre datos traspados entre el
cliente y el servidor para el correcto funcionamiento de la web

c. <i>Petición (request)</i>:Info sobre configuración del cliente
para manejar de manera corecta la posible respuesta del servidor, y
diferentes formatos de documentos que acepta el
cliente:

d. En nuestro caso esta cabecera se encuenta compuesta por las
siguientes líneas:

Host: mail.google.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:
1.9.2.17) Gecko/20110420 Firefox/3.6.17
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/
*;q=0.8
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer:
https://mail.google.com/mail/?ui=2&view=js&name=main,tlist&ver=y3sQ9-rRGTY.es.&am=!_pZ5EFJLpKVvDX1j2H4x8nizD6xH5yWp5-gzsfDXQfCS-lR-2Rml7UP6TA&fri
Content-Length: 72
Pragma: no-cache
Cache-Control: no-cache

3. <i>Cuerpo de la petición http (body)</i>. Sólo en el caso de que se
use el método post para el envío de datos, las cookies y demás
información necesaria para el correcto funcionamiento de la web será
enviada en el cuerpo del a cabecerá sino estará vacío y se enviará en
la cabecera http. (header). En nuestro caso, al ser una petición post,
el cuerpo se conformá de las siguiente líneas:

Cookie:
S=gmail=p9S2eO_vRdAY5HMO0JBbMw:gmproxy=VrZOURA3RTSxOvumF29ruw;
GX=DQAAAJoAAABubbemfPQzB3n9a7v iyUZuwf6neKGzeSfyFDzw3U9-
pcVGiHYI5au1aJ-QtgkqfemBh6Nrk3hJp6ME5wPrgUceL

WdBGiwVyc_jyi6HH1yXrOcXJvcdeC7LebvuwBGZ2ajNY0EGiU3U76UoOTDTOIUmP0f1KjoudjDSF08W5Fpl2cNnwG6dBlgD3AEwMPV-
ifNxmVrgoB_LaK-fnK_CNFX;
GMAIL_AT=AF6bupMZj3tB6X2jbJTguiphzHLKtP480A; GMAIL_ANS=1;
gmailchat=xxx...@gmail.com/534394;

SID=DQAAAJcAAAAZgTPgUYzOp5wPbbgJAyMkUVDsLSfiOvw3noztCSz_kVMDlZCBARzbAMDxJ1pT07bqB4OQo0ySIhcisRvRWoHYD9eLNdhuuSI8bz53s-

zqS6dJai7XAuuasLWgv049m7XNrIZCSiZFh6fJSKD8w1hG64kb3ImoKH6BZDj1LjFTBgMXArNMNbJ7QrEagxl1vzTiI-
Qa3PNYVeF0p6C9f89U; HSID=Al4Ic7V41dFWajmDM;
SSID=AjwxOB6vHldavPXOO;
PREF=ID=7405855571fa7611:FF=0:TM=1304836249:LM=1304836249:GM=1:S=sm1FLdmpql6UFgds


<u>Respuesta del servidor</u>

Como se puede ver, en estas cabeceras de petición va mucha mas
información que la petición en sí para que el servidor web "sepa
responder" mediante sus cabeceras de respuesta (HTTP response)
mediante el mismo funcionamiento pero teniendo en cuenta estos datos
de referencia.


1. <i>Línea de repuesta (response line). </i>

a. <i>Versión del protocolo http usado</i> para la misma
b. <i>Código de fracaso o de éxito en la operación (peticion-
respuesta)</i>. Estos códigos pueden estar incluídos en los siguientes
intervalos:
100-199: son informativos, indican que la petición está siendo
procesada
200-299: denotan éxito, que el servidor recibió y procesó la
información con éxito
300-399: indican que la petición no ha sido ejecutada, porque la
info requerida ha sido movida
400-499: indican un error del cliente, que la petición fue
incompleta, incorrecta o imposible de procesar (mediante el lenguaje
de programación utilizado en el lado del
servidor)
500-599: denotan un error del servidor, la petición parece
válida pero el servidor no pudo llevarla a cabo.
c. En nuestro estas dos se resumen en la siguiente línea:

HTTP/1.1 200 OK

2. <i>Encabezado http (header)</i>. La info que contiene se divide
en:

a. <i>General</i>: Info sobre el servidor
b. <i>Entidad</i>: Info para el correcto funcionamiento de la web.
c. <i>Request</i>: Exactamente lo mismo que antes
d. <i>Response</i>: Info sobre el servidor para poder manejar la
respuesta adecuadamente y mostrarla por pantalla.
e. En nuestro caso se resumen en las siguientes líneas:

Content-Type: text/plain; charset=utf-8
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Date: Sun, 08 May 2011 07:12:49 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Length: 13
Server: GSE

3. Cuerpo de la respuesta http (body): Si la petición ha tenido éxito
nos llegará en esta parte el código html, bytes de imágenes, etc que
hubieramos solicitado. No se muesta aquí debido a la extensión del
documento, sin embargo se puede hacer clic en el boton derecho de esta
página e ir a Ver código fuente para tener una ligera idea de lo que
sería la respuesta en sí.

Nota: No todos los navegadores envían o reciben la misma información.
Este ejemplo ha sido usando el navegador Mozilla-Firefox 3.6.17
Reply all
Reply to author
Forward
0 new messages