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
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 |
|
|
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 |