Desarrollo de aplicaciones informáticas


Desplegament d'aplicacions Web


DAW = Desplegament d'Aplicacions Web

Arquitectura TCP / IP

Tcp - udp

Icmp -ip - arp (de ip a pc) - rarp (qui te la ip d'una web donada/d'una mac)

Broadcast

Connexions tcp/ip i udp/ip

Comandes: #netstat

'Desplegament d\'aplicacions Web'
Netstat (network statistics) és una eina de línia d'ordres que mostra un llistat de les connexions actives d'un ordinador, tant entrants com sortints. Existeixen versions d'aquesta ordre en diferents sistemes com ara Unix/Linux, Mac OS X, Windows i BeOS.

La informació resultant de l'execució de l'ordre inclou el protocol en ús, les direccions IP (locals i remotes), els ports (locals i remots) emprats i l'estat de la connexió.

Ports efímers

Ordre de paquets udp i tcp

Comunicació Servidor - client

A l'hora de comunicar-se, es poden fer de dues maneres: transmissions asíncrones o síncrones.

  • Transmissions asíncrones: l'emissor i el receptor no han pactat el moment en que es produirà la comunicació.

  • Transmissions síncrones: aquests dos elements saben quan es farà la comunicació sabent també quant es comença la trama i quant s'acaba una trama.

SYN

SYN

SYN

STX

Dades

CONTROL

ETX

Syn: sincronisme

Stx: comença el trama

Etx: final de trama

SYN

SYN

SYN

DLE

STX

Dades

CONTROL

DLE

ETX

Syn: sincronisme

Stx: comença el trama

Etx: final de trama

Dle: caràcter

Sockets

Socket designa un concepte abstracte pel qual dos programes (possiblement situats a ordinadors diferents) poden intercanviar qualsevol flux de dades, generalment de manera fiable i ordenada. Tot socket està definit per una adreça de socket. L'adreça de socket és una combinació de tres elements: una adreça IP, un protocol de transport i un número de port (per exemple: 84.88.125.15, TCP, 2300).

Un socket és un fitxer informàtic existent a la màquina client i en la màquina servidora, que serveix en última instància perquè el programa servidor i el client llegeixin i escriguin la informació. Aquesta informació serà la transmesa per les diferents capes de xarxa.

Els valors pels estats possibles dels sockets TCP són els següents:

CLOSED

- Cerrado. El socket no está siendo usado.

LISTENING

- Escuchando conexiones entrantes.

SYN_SENT

- Activamente intentando establecer una conexión.

SYN_RECEIVED

- Sincronización inicial de la conexión en curso.

ESTABLISHED

- Conexión que ha sido establecida.

CLOSE_WAIT

- Cierre remoto. Esperando el cierre del socket.

FIN_WAIT_1

- Socket cerrado. Cerrando la conexión

CLOSING

- Cerrado, luego apagado remoto. Esperando confirmación.

LAST_ACK

- Apagado remoto, luego cierre. Esperando confirmación.

FIN_WAIT_2

- Socket cerrado. Esperando apagado remoto.

TIME_WAIT

- Esperando después del cierre para la retransmisión del apagado remoto.

HTTP

El protocol de transferència d'hipertext o HTTP (HyperText Transfer Protocol) estableix el protocol per a l'intercanvi de documents d'hipertext imultimèdia a la web. 

Diferencies de versions http: HTTP 1.1 pipelining

Capçalera del HTTP: Content-language, content-lenght, content-location, content-type ...

Tipus de peticions:

  • GET: solicita informació indicada per la `URI'.

  • HEAD: només et quedes amb les capçaleres, no la informació.

  • POST: s'utilitza per enviar correu i noticies.

Trames amb Wireshark

Hem capturat les trames de la connexió FTP i d'Internet (Hotmail o Gmail).

El FTP no encripta els users i els passwords.

Arquitectures

Model 1. CGI

CGI és un programa que dóna sortida a BDs. Es pot programar en PHP, Ash, PErl, C. Aquesta aplicació s'executa, s'incrusta al servidor web i viatja cap al client.

Té inconvenients:

  • És un programa binari.

  • No està encriptat.

  • El cost temporal és car.

Model 1.5 JSP / Servlet

Model 2.0 MVC

Aquí ja tenim el Model Vista Controlador, que separa els controladors(les transaccions), les vistes (CSS) i els models de dades (la capa de gestió de dades, JavaBeans).

Servidor web: Exemples: Apache, IIS

Contenidor d'aplicacions: Apache Toncat (soporta JSP i Servlets)

Contenidor Enterprise JavaBeans (Servidor d'aplicacions): Glassfish, jBoss

IOP Listener: és similar al CORBA.

Mòduls de Multiprocessament: són diferents formes de processar les peticions d'apache.

Versió 1.X. Prefork

Versió 2.X. MPM's

  • MPM prefork: per defecte ve aquest.

  • MPM worker

  • MPM de fills variables

  • MPM-WIN

  • MPM event

Directori d'un Linux:

/etc /apache2 aquí estan els fitxers de configuració

/usr/apache2 aquí estan els fitxers binaris

/usr/local aquí estan els fitxers binaris

/var/www aquí estan els arxius, servidor FTP, BDs que pengem a la Web

/etc/apache2/conf/httpd.conf documents Root

/bin/ comandes necessàries per Linux

Sudo apt-get update Et baixa les actualitzacions de Linux

Sudo apt-get apache2 T'instal·la l'Apache 2.0

Whereis apache2 Per saber on estan els binaris del Apache 2.0

Cat /etc/apache2/apache2.conf | grep Document Root És el path és l'inici de l'arbre.

Fitxers de configuració de l'apache (httpd.conf):

  • Secció 1: Paràmetres globals

    • Timeout: temps màxim des de que es fa la petició fins que es mostra la pàgina

    • KeepAlive: connectes i pots fer diferents gets abans de tancar la connexió.

    • MaxKeepAliveRequest: és quantes peticions poden haver-hi simultànies.

    • KeepAliveTimeOut: quant de temps t'has d'esperar perquè arribi un request abans d'acabar.

    • Listen: per quin port escoltes. Per defecte és el 80.

    • LoadModule

  • Secció 2: Directives de funcionament

    • ServerName

    • DocumentRoot: on comença l'arbre

    • AllowOverride: diu si permet les directives de sobreescripció

Htacces: necessita accés al servidor

http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride

    • Options: són les que configuren

None / All

FollowSymLinks/SymLinksIfOwnerMatch

Indexes

  • Secció 3: Virtual Hosts

Paths:

Ps -ef | grep apache2 Ens indica tots els processos apaches que tinc

Autentificació, auterització i control

La autentificación es cualquier proceso mediante el cual se verifica que alguien es quien dice ser. La autorización es cualquier proceso por el cual a alguien se le permite estar donde quiere ir, o tener la información que quiere tener.

Módulos y Directivas relacionadas

Módulos Relacionados

Directivas Relacionadas

  • mod_auth

  • mod_access

  • Allow

  • AuthGroupFile

  • AuthName

  • AuthType

  • AuthUserFile

  • Deny

  • Options

  • Require

do:

Core

Directivas

  • AcceptPathInfo

  • AccessFileName

  • AddDefaultCharset

  • AddOutputFilterByType

  • AllowEncodedSlashes

  • AllowOverride

  • AuthName

  • AuthType

  • CGIMapExtension

  • ContentDigest

  • DefaultType

  • <Directory>

  • <DirectoryMatch>

  • DocumentRoot

  • EnableMMAP

  • EnableSendfile

  • ErrorDocument

  • ErrorLog

  • FileETag

  • <Files>

  • <FilesMatch>

  • ForceType

  • HostnameLookups

  • IdentityCheck

  • <IfDefine>

  • <IfModule>

  • Include

  • KeepAlive

  • KeepAliveTimeout

  • <Limit>

  • <LimitExcept>

  • LimitInternalRecursion

  • LimitRequestBody

  • LimitRequestFields

  • LimitRequestFieldSize

  • LimitRequestLine

  • LimitXMLRequestBody

  • <Location>

  • <LocationMatch>

  • LogLevel

  • MaxKeepAliveRequests

  • NameVirtualHost

  • Options

  • Require

  • RLimitCPU

  • RLimitMEM

  • RLimitNPROC

  • Satisfy

  • ScriptInterpreterSource

  • ServerAdmin

  • ServerAlias

  • ServerName

  • ServerPath

  • ServerRoot

  • ServerSignature

  • ServerTokens

  • SetHandler

  • SetInputFilter

  • SetOutputFilter

  • TimeOut

  • TraceEnable

  • UseCanonicalName

  • <VirtualHost>

AcceptPathInfo Directiva

Descripción:

Especifica si los recursos aceptan información de path añadida (trailing pathname information)

Sintaxis:

AcceptPathInfo On|Off|Default

Valor por defecto:

AcceptPathInfo Default

Contexto:

server config, virtual host, directory, .htaccess

Prevalece sobre:

FileInfo

Estado:

Core

Módulo:

core

Compatibilidad:

Disponible en la versiones de Apache 2.0.30 y posteriores

Esta directiva controla si las peticiones que contienen información de path añadida (trailing pathname information) a continuación de un nombre de fichero existente (o no existente en un directorio que sí existe) serán aceptadas o rechazadas. La información de path añadida (trailing pathname information) puede pasarse a los scripts en la variable de entorno PATH_INFO.

Por ejemplo, suponga que la ubicación /test/ se refiere a un directorio que contiene un único fichero: here.html. Entonces, tanto las peticiones a /test/here.html/more como las peticiones a /test/nothere.html/more toman /more como PATH_INFO.

Los tres argumentos que puede tomar la directiva AcceptPathInfo son:

Off

Una petición será aceptada solamente si se refiere literalmente a una ruta que existe. Por tanto, una petición con información de path añadida (trailing pathname information) después de un nombre de fichero que existe, del tipo /test/here.html/more como en el ejemplo de arriba, devolverá el mensaje de error 404 NOT FOUND.

On

Una petición será aceptada si la componente anterior a la información de path añadida (trailing pathname information) se refiere a un fichero que existe. El ejemplo de arriba /test/here.html/more será aceptado si /test/here.html se refiere a un fichero válido.

Default

El tratamiento de las peticiones con información de path añadida (trailing pathname information) está determinado por el handler responsable de la petición. El handler básico para ficheros normales rechaza por defecto las peticiones de PATH_INFO. Los handlers que sirven scripts, como cgi-script e isapi-handler, generalmente aceptan PATH_INFO por defecto.

El propósito principal de la directiva AcceptPathInfo es permitirle hacer prevalecer su propio criterio sobre el del handler acerca de si se debe aceptar o rechazar PATH_INFO. Esto es necesario por ejemplo, cuando use un filtro, como INCLUDES, para generar contenido basado en PATH_INFO. El handler básico rechazaría normalmente la petición. Puede usar la siguiente configuración para activar dicho script:

<Files "mypaths.shtml">
Options +Includes
SetOutputFilter INCLUDES
AcceptPathInfo On
</Files>

AccessFileName Directiva

Descripción:

Nombre del fichero de configuración distribuida

Sintaxis:

AccessFileName filename [filename] ...

Valor por defecto:

AccessFileName .htaccess

Contexto:

server config, virtual host

Estado:

Core

Módulo:

core

Durante el procesamiento de una petición el servidor busca el primer fichero de configuración de esta lista de nombres en cada directorio de la ruta del documento, siempre y cuando los ficheros de configuración distribuida estén activados para ese directorio. Por ejemplo:

AccessFileName .acl

Antes de devolver el documento /usr/local/web/index.html, el servidor leerá /.acl, /usr/.acl, /usr/local/.acl y /usr/local/web/.acl buscando directivas, a menos que hayan sido desactivados con

<Directory />
AllowOverride None
</Directory>

Consulte también

  • AllowOverride

  • Ficheros de Configuración

  • Ficheros .htaccess

AddDefaultCharset Directiva

Descripción:

Parámetro del conjunto de caracteres que se añade cuando el tipo de contenido de una respuesta es text/plain o text/html

Sintaxis:

AddDefaultCharset On|Off|charset

Valor por defecto:

AddDefaultCharset Off

Contexto:

server config, virtual host, directory, .htaccess

Prevalece sobre:

FileInfo

Estado:

Core

Módulo:

core

Esta directiva especifica un valor por defecto para el parámetro del conjunto de caracteres que se añade añade si solo si el tipo de contenido de una respuesta es text/plain o text/html. EL valor pecificado en esta directiva no prevalecerá si cualquier otro conjunto de caracteres es especificado en el cuerpo del documento por medio de una etiqueta META, aunque a menudo, el comportamiento exacto está determinado por la configuración del cliente. Si se especifica AddDefaultCharset Off, se desactiva esta funcionalidad. AddDefaultCharset On activa el uso del conjunto de caracteres por defecto interno de Apache, iso-8859-1. Cualquier otro valor se asume que es el charset a usar, que será uno los registrados por la IANA como tipos MIME. Por ejemplo:

AddDefaultCharset utf-8

AddDefaultCharset debe ser usada solo cuando todos los recursos de texto a los que se aplican se saben que usan un determiando conjunto de caracteres (character encoding) y no es conveniente etiquetar los documentos individualmente. Un ejemplo es su uso en recursos que contienen contenido generado, como CGIs antiguos, que puede ser vulnerables a ataques debidos a que se incluye en el resultado datos suministrados por el usuario. Tenga en cuenta, sin embargo, que una mejor solución es simplemente modificar (o borrar) esos scripts, porque especificar un conjunto de caracteres por defecto no protege a los usuarios que tengan activada en su navegador la opción "auto-detect character encoding".

Consulte también

  • AddCharset

AddOutputFilterByType Directiva

Descripción:

Asigna un filtro de salida a un tipo MIME en particular

Sintaxis:

AddOutputFilterByType filter[;filter...] MIME-type [MIME-type] ...

Contexto:

server config, virtual host, directory, .htaccess

Prevalece sobre:

FileInfo

Estado:

Core

Módulo:

core

Compatibilidad:

Disponible en las versiones de Apache 2.0.33 y posteriores

Esta directiva activa un filtro de salida en particular para las peticiones en función del tipo MIME de la respuesta.

El siguiente ejemplo usa el filtro DEFLATE, del módulo mod_deflate. Este filtro comprime la parte de la respuesta de la petición (ya sea estática o dinámica) que esté etiquetada como text/html o text/plain antes de ser enviada al cliente.

AddOutputFilterByType DEFLATE text/html text/plain

Si quiere que los contenidos sean procesados por más de un filtro, debe separar sus nombres con puntos y comas (;). Tambén es posible usar la directiva AddOutputFilterByType para cada uno de los filtros.

La configuración que se muestra más abajo hace que todos los scripts etiquetados como text/html sean procesados primero por el filtro INCLUDES y posteriormente por el filtro DEFLATE.

<Location /cgi-bin/>
Options Includes
AddOutputFilterByType INCLUDES;DEFLATE text/html
</Location>

Nota

Activar filtros con la directiva AddOutputFilterByType puede no funcionar parcial o totalmente. Por ejemplo, no se aplica ningún filtro si es posible determinar el tipo MIME y se aplica en su lugar DefaultType, incluso si el DefaultType es el mismo.

Si quiere estar seguro de que se apliquen los filtros, asigne el tipo de contenido a un recurso explícitamente, por ejemplo con la directiva AddType o con ForceType. Determinar el tipo de contenido dentro de un script CGI (que no sea del tipo nph) también es seguro.

Los filtros de salida por tipo no se aplican nunca en peticiones proxy.

Consulte también

  • AddOutputFilter

  • SetOutputFilter

  • Filtros

AllowEncodedSlashes Directiva

Descripción:

Determina si se acepta el uso de separadores de ubicación codificados en las URLs

Sintaxis:

AllowEncodedSlashes On|Off

Valor por defecto:

AllowEncodedSlashes Off

Contexto:

server config, virtual host

Estado:

Core

Módulo:

core

Compatibilidad:

Disponible en las versines de Apache 2.0.46 y posteriores

La directiva AllowEncodedSlashes perimite usar URLs que contienen separadores de ubicación codificados (%2F para / y %5C para \ en función del sistema). Normalmente, tales URLs se rechazan y se devuelve un mensaje de error 404 (Not found).

Especificar el valor On en la directiva AllowEncodedSlashes es útil sobre todo cuando se usa junto con PATH_INFO.

Nota

Permitir barras codificadas no implica su decodificado. La aparición de %2F o %5C (según el sistemas de que se trate) se dejará como tal en la cadena de caracteres que conforma la de otra manera URL decodificada.

Consulte también

  • AcceptPathInfo

AllowOverride Directiva

Descripción:

Tipos de directivas que cuyo uso está permitido en los ficheros .htaccess

Sintaxis:

AllowOverride All|None|directive-type [directive-type] ...

Valor por defecto:

AllowOverride All

Contexto:

directory

Estado:

Core

Módulo:

core

Cuando el servidor encuentra un fichero .htaccess (como se explica en la directiva AccessFileName) es necesario saber que directivas presentes en ese fichero pueden prevalecer sobre las directivas de configuración previas.

Solamente disponible en las secciones <Directory>

AllowOverride puede usarse solo en las secciones <Directory> especificadas sin expresiones regulares, nunca en las secciones <Location>, <DirectoryMatch> o <Files>.

Cuando el valor de esta directiva es None, entonces los ficheros .htaccess son ignorados completamente. En ese caso, el servidor ni siquiera intentará leer los archivos .htaccess existentes.

Cuando el valor especificado en esta directiva es All, entonces cualquier directiva que tenga Context .htaccess puede ser usada en los ficheros .htaccess.

El tipo de directiva puede ser uno de los siguientes grupos de directivas.

AuthConfig

Permite usar directivas de autentificación (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, etc.).

FileInfo

Permite usar directivas que controlan los tipos de documento (DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, y mod_mime las directivas Add* y Remove*, etc.).

Indexes

Permite el uso de directivas que controlan el indexado de directorios (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, etc.).

Limit

Permite el uso de directivas que controlan el acceso al host (Allow, Deny y Order).

Options

Permite usar directivas que controlan funcionalidades específicas de directorios (Options y XBitHack).

Ejemplo:

AllowOverride AuthConfig Indexes

En el ejemplo de arriba todas las directivas que no están en el grupo AuthConfig ni en el grupo Indexes provocan un error interno del servidor.

Consulte también

  • AccessFileName

  • Ficheros de Configuración

  • Ficheros .htaccess

AuthName

Descripción:

Ambito de autorización para su uso en autentificación HTTP

Sintaxis:

AuthName auth-domain

Contexto:

directory, .htaccess

Prevalece sobre:

AuthConfig

Estado:

Core

Módulo:

core

Esta directiva especifica el nombre de dominio que se muestra al solicitar autorización para acceder a un directorio. Este nombre de dominio se muestra al cliente para que el usuario sepa qué nombre de usuario y contraseña ha de introducir. AuthName toma solamente un argumento; si el nombre de dominio contiene algún espacio, debe escribirse entre comillas. Para que funcione correctamente, esta directiva debe usarse junto con las directivas AuthType y Require, y con directivas como AuthUserFile y AuthGroupFile.

Por ejemplo:

AuthName "Top Secret"

La cadena de caracteres que se especifique como valor de AuthName será lo que aparecerá en el cuadro de diálogo de acceso de la mayoría de los navegadores.

Consulte también

  • Autentificación, Autorización y Control de Acceso

AuthType

Descripción:

Tipo de autentificación de usuarios

Sintaxis:

AuthType Basic|Digest

Contexto:

directory, .htaccess

Prevalece sobre:

AuthConfig

Estado:

Core

Módulo:

core

Esta directiva selecciona el tipo de autentificación de usuarios que usará para un directorio. Actualmente solamente están implementadas las opciones Basic y Digest. Para que funcione correctamente, esta directiva tiene que ir acompañada por las directivas AuthName y Require, y de directivas como AuthUserFile y AuthGroupFile.

Consulte también

  • >Autentificación, Autorización y Control de Acceso

DefaultType

Descripción:

Tipo de contenido MIME por defecto que usará el servidor si no puede determinar el tipo MIME en concreto del documento a servir

Sintaxis:

DefaultType MIME-type

Valor por defecto:

DefaultType text/plain

Contexto:

server config, virtual host, directory, .htaccess

Prevalece sobre:

FileInfo

Estado:

Core

Módulo:

core

Hay veces en las que se pide al servidor que devuelva un documento cuyo tipo MIME no puede determinar.

El servidor tiene que informar al cliente del tipo de contenido del documento. En el caso de que se trate de un tipo desconocido, se usa el tipo DefaultType. Por ejemplo:

DefaultType image/gif

sería apropiado para un directorio que contenga muchas imagenes tipo GIF cuyos nombres de fichero no tengan la extensión .gif.

Tenga en cuenta que a diferencia de ForceType, esta directiva solamente indica el tipo MIME por defecto. El resto de definiciones de tipos MIME, incluidas las extensiones de fichero, que pueden identificar el tipo MIME de que se trata prevalecen sobre esta opción por defecto.

Auth Group File:

Auth User File:

Require user ...

Require file_owner

Require valid-user

Require group ...

Satisfy: tinc un servidor apache, i unes dades relativament publiques. Els del centre hi podem entrar sense contrassenya, però els de fora necessiten validar-se. És a dir, depen de les Ips.

Satisfy all: s'han de cumplir tots els requisits (require i allow)

Satisfy any: només que allow o require es compleixi, ja es valida

Allow 192.168.10.210 allow 192.168.0.0/255.255.0.0

Require user ...

També podem fer que una carpeta o una pàgina nostra direccioni a una altra pàgina web:

Redirect src destination

Redirect /dx www.xtec.cat

Ens baixem el programa sysklogd




Descargar
Enviado por:Laia Luna
Idioma: catalán
País: España

Te va a interesar