PDF de programación - C# Aplicaciones web - Desarrollo Profesional de Aplicaciones con C#

<<>>
Imágen de pdf C# Aplicaciones web - Desarrollo Profesional de Aplicaciones con C#

C# Aplicaciones web - Desarrollo Profesional de Aplicaciones con C#gráfica de visualizaciones

Publicado el 1 de Junio del 2017
2.405 visualizaciones desde el 1 de Junio del 2017
1,4 MB
38 paginas
Aplicaciones web

Tras haber visto en qué consiste el desarrollo de interfaces web, las alternativas de las que
dispone el programador y el modelo concreto de programación de las páginas ASP.NET web
en la plataforma .NET, pasamos ahora a estudiar cómo se construyen aplicaciones web reales,
en las cuales suele haber más de una página:

- Primero tendremos que aprender a dominar algunos detalles de funcionamiento
del protocolo HTTP, el protocolo a través del cual el navegador del usuario
accede al servidor web donde se aloja nuestra aplicación ASP.NET.

- Acto seguido, veremos cómo ASP.NET nos facilita mantener información común
a varias solicitudes HTTP realizadas independientemente; esto es, lo que se
conoce en el mundo de las aplicaciones web como sesiones de usuario.

- Finalmente, cerraremos el capítulo describiendo cómo podemos controlar a qué
partes de la aplicación puede acceder cada usuario, cómo crear formularios de
autentificación y darle permisos al usuario para que realice determinadas tareas en
el servidor.

Otros aspectos de interés relacionados con la organización interna de las aplicaciones
ASP.NET los dejaremos para el siguiente capítulo. Por ahora, nos centraremos en las
cuestiones que afectan más directamente al uso de nuestra aplicación por parte del usuario.

86

Desarrollo Profesional de Aplicaciones con C#

Aplicaciones web

El protocolo HTTP .................................................................87
En el camino correcto .............................................. 90
Control del tráfico con manejadores y filtros HTTP . 91
Cuestión de refresco................................................ 95
Almacenamiento en caché....................................... 97
En el navegador web del cliente............................ 97
... y en el servidor web........................................... 99
Cookies .................................................................... 99

Sesiones de usuario en ASP.NET......................................103
El contexto de una página ASP.NET ..................... 103
Mantenimiento del estado de una aplicación web . 105

Seguridad en ASP.NET .......................................................111
Autentificación y autorización ................................ 111
Autentificación en Windows ................................... 114
Formularios de autentificación en ASP.NET.......... 116
Permisos en el servidor ......................................... 119
Seguridad en la transmisión de datos.................... 120

© Fernando Berzal, Francisco J. Cortijo & Juan Carlos Cubero

Aplicaciones web

87

El protocolo HTTP

El protocolo HTTP [HyperText Transfer Protocol] es un protocolo simple de tipo
solicitud-respuesta incluido dentro de la familia de protocolos TCP/IP que se utiliza en
Internet. Esto quiere decir que, cada vez que accedemos a una página (en general, a un recurso
accesible a través de HTTP), se establece una conexión diferente e independiente de las
anteriores.

Funcionamiento del protocolo HTTP: Cada solicitud del cliente tiene como

resultado una respuesta del servidor y, cada vez que el cliente hace una

solicitud, ésta se realiza de forma independiente a las anteriores.

Internamente, cuando tecleamos una dirección de una página en la barra de direcciones del
navegador web o pinchamos sobre un enlace, el navegador establece una conexión TCP con
el servidor web al que pertenece la dirección especificada. Esta dirección es una URL de la
forma http://... y, salvo que se indique lo contrario en la propia URL, la conexión con
el servidor se establecerá a través del puerto 80 TCP. Una vez establecida la conexión, el
cliente envía un mensaje al servidor (la solicitud) y éste le responde con otro mensaje (la
respuesta). Tras esto, la conexión se cierra y el ciclo vuelve a empezar. No obstante, hay que

http://csharp.ikor.org/

88

Desarrollo Profesional de Aplicaciones con C#

mencionar que, por cuestiones de eficiencia y para reducir la congestión en la red, HTTP/1.1
mantiene conexiones persistentes, lo cual no quiere decir que la interacción entre cliente y
servidor varíe un ápice desde el punto de vista lógico: cada par solicitud-respuesta es
independiente.

Información técnica acerca de Internet

Como se verá con más detalle en el capítulo dedicado a la
creación de aplicaciones distribuidas con sockets, los puertos
son un mecanismo que permite mantener varias conexiones
abiertas
como
multiplexación de conexiones. Los protocolos TCP y UDP
incluyen este mecanismo para que, por ejemplo, uno pueda
estar navegando por Internet a la vez que consulta el correo o
accede a una base de datos.

simultáneamente,

conoce

que

se

lo

se

en

puede

Internet

consultar

Toda la información técnica relacionada con los estándares
utilizados
en
http://www.ietf.org, la página web del Internet Engineering
Task Force. IETF es una comunidad abierta que se encarga de
garantizar el correcto funcionamiento de Internet por medio
de la elaboración de documentos denominados RFCs [Request
For Comments]. Por ejemplo, la versión 1.0 del protocolo
HTTP está definida en el RFC 1945, mientras que la
especificación de la versión 1.1 de HTTP se puede encontrar
en el RFC 2616.

El protocolo HTTP sólo distingue dos tipos de mensajes, solicitudes y respuestas, que se
diferencian únicamente en su primera línea. Tanto las solicitudes como las respuestas pueden
incluir distintas cabeceras además del cuerpo del mensaje. En el cuerpo del mensaje es donde
se transmiten los datos en sí, mientras que las cabeceras permiten especificar información
adicional acerca de los datos transmitidos. En el caso de HTTP, las cabeceras siempre son de
la forma clave: valor. Un pequeño ejemplo nos ayudará a entender el sencillo
funcionamiento del protocolo HTTP.

Cuando accedemos a una página web desde nuestro navegador, la solicitud que se le remite al
servidor HTTP es de la siguiente forma:

GET http://csharp.ikor.org/index.html HTTP/1.1
If-Modified-Since: Fri, 31 Oct 2003 19:41:00 GMT
Referer: http://www.google.com/search?...

La primera línea de la solicitud, aparte de indicar la versión de HTTP utilizada (1.1 en este

© Fernando Berzal, Francisco J. Cortijo & Juan Carlos Cubero

Aplicaciones web

89

caso), también determina el método utilizado para acceder al recurso solicitado. Este recurso
ha de venir identificado mediante un URI [Universal Resource Identifier], tal como se define
en el estándar RFC 2396. Los métodos de acceso más usados son GET y POST, que sólo se
diferencian en la forma de pasar los parámetros de los formularios. Existe otro método, HEAD,
que sólo devuelve metadatos acerca del recurso solicitado.

a

la

información relativa

solicitud o al propio cliente. En el

Tras la primera línea de la solicitud, pueden o no aparecer líneas adicionales en las cuales se
añade
ejemplo,
If-Modified-Since sirve para que el cliente no tenga que descargar una página si ésta
no ha cambiado desde la última vez que accedió a ella en el servidor. Por su parte, Referer
indica la URL del sitio desde el que se accede a la página, algo de vital importancia si
queremos analizar el
tráfico de nuestro servidor web. Incluso existen cabeceras, como
User-Agent, mediante las cuales podemos averiguar el sistema operativo y el navegador
que usa el cliente al acceder al servidor HTTP.

El final de una solicitud lo marca una línea en blanco. Esta línea le indica al servidor HTTP
que el cliente ya ha completado su solicitud, por lo que el servidor puede comenzar a generar
la respuesta adecuada a la solicitud recibida. Dicha respuesta puede ser el aspecto siguiente:

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Sun, 17 Aug 2003 10:35:30 GMT
Content-Type: text/html
Last-Modified: Tue, 27 Mar 2001 10:34:52 GMT
Content-Length: XXX
<html>

--- Aquí se envía el texto de la página HTML

</html>

Como se puede apreciar, en la primera línea de la respuesta aparece la versión de HTTP
empleada, un código de estado de tres dígitos y una breve descripción de ese código de
estado. A continuación, aparecen una serie de cabeceras en las que se puede identificar el
servidor HTTP que realiza la respuesta (Server),
tipo MIME
correspondiente a los datos que se envían con la respuesta (Content-Type), la última vez
que se modificó el fichero devuelto (Last-Modified) y la longitud del fichero de datos
que se manda como respuesta a la solicitud (Content-Length, donde XXX representa, en
una respuesta real, el número de bytes de datos que se transmiten). Finalmente, la respuesta
concluye enviando los datos asociados al recurso que solicitó el cliente, un fichero HTML tal
como indica el tipo de la respuesta (text/html).

la fecha (Date), el

Como se puede apreciar, en la cabecera de la respuesta HTTP se incluyen bastantes datos que
pueden resultar de interés a la hora de controlar la interacción entre el cliente y el servidor.
Respecto al primero de esos datos, el código de estado devuelto en la primera línea de la
respuesta HTTP, la siguiente tabla resume las distintas categorías a las que pueden pertenecer:

http://csharp.ikor.org/

90

Desarrollo Profesional de Aplicaciones con C#

Código

Significado

Ejemplos

1xx

2xx

3xx

4xx

Mensaje informativo

Éxito

200 OK

Redirección

301 Moved Permanently
302 Resource temporarily moved

Error en el cliente

400 Bad request
401 Unauthorized
403 Forbidden

5xx

Error en el servidor

500 Internal Server Error

Los apartados siguientes nos mostrarán cómo podemos hacer uso de nuestro conocimiento del
funcionamiento interno del protocolo HTTP para realizar determinadas tareas que pueden
sernos de interés en la creación de aplicaciones web.

En el camino correcto

Como cualquier programador que se precie debe saber, lo ideal a la hora de desarrollar un
sistema de cierta complejidad es dividir dicho sistema en subsistemas lo más independientes
posibles. En el caso particular que nos ocupa, cuando tenemos una aplicación web con
multitud de páginas ASP.NET, lo ideal es que cada pági
  • Links de descarga
http://lwp-l.com/pdf3842

Comentarios de: C# Aplicaciones web - Desarrollo Profesional de Aplicaciones con C# (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad