Sitio donde se podra encontrar información importante y de ayuda en temas de informática y tecnología, con énfasis en programación en .NET
viernes, 28 de diciembre de 2012
EditSettings de una celda en un grid con Scroll
<dxg:GridColumn Name="colDetObservation" FieldName="Observations" FixedWidth="True" Fixed="Right" MinWidth="100">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings Name="meDetObservation"/>
</dxg:GridColumn.EditSettings>
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<dxe:TextEdit Name="PART_Editor" MaxLength="4000" MaxHeight="30" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"/>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
viernes, 21 de diciembre de 2012
Desactivar Movimiento del Ratón en un combobox
Para desactivar esta función, se desactiva el manejador en el evento PreviewMouseWheel.
private void combobox_PreviewMouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
{
e.Handled = true;
}
lunes, 3 de diciembre de 2012
Llamar una ventana Winform desde WPF
- Agregar a las referencias del proyecto la libreria WindowsFormsIntegration, generalmente localizada en %ProgramFiles%\Reference Assemblies\Microsoft\Framework\v3.0\WindowsFormsIntegration.dll
- Importar la librería dentro del proyecto WPF de la siguiente manera: Imports System.Windows.Forms.Integration
- Después de llamar al WinForm con el método .Show(), habilitar la interoperabilidad de la siguiente manera:System.Windows.Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop()
viernes, 9 de noviembre de 2012
Macros Cazador WOW
MACROS:
Trampas:
#showtooltip /castsequence reset=9 Trap Launcher, !Explosive Trap(Fire - Trap Launcher), nil
#showtooltip /castsequence reset=9 Trap Launcher, !Freezing Trap(Frost - Trap Launcher), nil
#showtooltip /castsequence reset=9 Trap Launcher, !Ice Trap(Frost - Trap Launcher), nil
#showtooltip /castsequence reset=9 Trap Launcher, !Immolation Trap(Fire - Trap Launcher), nil
#showtooltip /castsequence reset=9 Trap Launcher, !Snake Trap(Nature - Trap Launcher), nil#showtooltip Redirección
/cast [target=targettarget] Redirección
Su función es Redireccionar a la persona que tenga el Aggro, en este caso el tank.
MASCOTAS
En el apartado de Mascotas hablaremos del Lobo!!!
Esta mascota es la "tapada" del juego su dps no es el mayor del juego nisiquiera es la que mas vida o armadura tenga,pero atentos con sus habilidades,destaca Aullido Furioso esta habilidad hace que Tú y tu mascota invocada obtengais 320 de poder de ataque durante 10 segundos esto es un increible bufo que puede ser constantemente renovado teniedo 1 punto en enfoque de mascotas.
Por ello el Lobo es la mejor mascota de la rama puntería.Se puede capturar fácil-facil en las Cumbres Tormentosas.
ENLACES
sábado, 3 de noviembre de 2012
Despendencias en SQL Server
Ver las dependencias en SQL Server (programación)
Podemos ver las dependencias de una tabla, utilizando la siguiente consulta:
SELECT routine_name, routine_type FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%MinorCategory%'
Frases Celebres
- Ojo por ojo y todo el mundo acabará ciego.
- Sólo se ama lo que no se posee totalmente.
- El que sube una escalera debe empezar por el primer peldaño.
- Con un poder absoluto hasta a un burro le resulta fácil gobernar.
- El hombre se cree siempre ser más de lo que es, y se estima menos de lo que vale.
viernes, 2 de noviembre de 2012
LÍDERES EXITOSOS NOS DEVELAN LOS SECRETOS DEL BUEN JEFE
- Lo más importante: el equipo
- Cultivando el bienestar laboral
miércoles, 31 de octubre de 2012
Becas Andi-EAFIT 2013-1
Cubren el 100% del costo de inscripción y matrícula, material didáctico durante el semestre y sostenimiento del becario. El formulario de aplicación a la beca es gratuito y no hay que estar previamente inscrito en Eafit para acceder a ellas. De interés para hombres y mujeres de estratos 1, 2, y 3.
Si te interesa o conoces a alguien a quien pueda ser útil esta información por favor comparte esto que estás leyendo.
!! COMPARTAMOS ESTA INFORMACIÓN, PUEDES AYUDARLE A OTRAS PERSONAS A ENCONTRAR UNA OPORTUNIDAD PARA EDUCARSE !!!!
Más información en: Becas ANDI - EAFIT
martes, 23 de octubre de 2012
HoneyMap: Mapa de ciberataques en tiempo real
Si te interesa, puedes ver el mapa en este instante: honeynet
Los centros de datos de Google, vistos como nunca antes
Servidores.
Toda la galeria : Google a color
Advanced SystemCare 6
Mas liviano que las herramientas conocidas hasta el momento, y con menos intrusión y consumo de los recursos del sistema.
Es gratis y funciona perfectamente cuando quieres optimizar tu PC para que de mas rendimiento en tareas especificas, tales como juegos.
Lo puedes descargar y probar desde este enlace --> Advanced SystemCare 6
Cómo medir el ancho de banda de tu conexión
Se integra limpiamente en el Windows XP y posteriores.
Si te interesa puedes darle una hojeada a la página donde te explicaran detalladamente todo sobre el programa: networx
Aun no la he probado pero ya la estoy descargando, pues me interesa saber mi consumo.
viernes, 19 de octubre de 2012
¿Cómo solucionar el error 1001 al desinstalar / reinstalar?
En este enlace podemos descargarla y ejecutarla: Arreglar problemas de Instalacion de programas en Windows
martes, 9 de octubre de 2012
Tipos de Datos CSharp
Tipos por Valor
Enlace biblioteca Microsoft
Tipos por Referencia
Enlace biblioteca Microsoft
Tipos Punteros
Tipo punteros en C Sharp
jueves, 4 de octubre de 2012
Administración Parque de Juegos BART
El proyecto inicial consiste en 5 módulos los cuales tendrán funcionalidades independientes.
PRIMER MODULO --> INTERFACE DE LOGIN DE USUARIO
Esta interface aun no cuenta con diseño
SEGUNDO MODULO --> PANTALLA DE INICIO
TERCER MODULO --> INTERFACE GRABACIÓN DE VOZ
CUARTO MODULO --> INTERFACE GRABACIÓN DE IMAGEN
Esta interface aun no cuenta con diseño
QUINTO MODULO --> INTERFACE DE CREACIÓN DE DIBUJOS
Esta interface aun no cuenta con diseño
martes, 2 de octubre de 2012
Seleccionar un rango de datos
En informix para obtener los primeros 10 registros de una consulta, debemos usar FIRST.
sábado, 8 de septiembre de 2012
jueves, 6 de septiembre de 2012
Dar foco a un registro nuevo agregado en un gridcontrol de devexpress
gvGroupStates.FocusedRowHandle = RelatedStateGroup.Count - 1;
2. Damos el foco a la primer columna del gridview:
gvGroupStates.FocusedColumn = colCodeGroup;
3. Ejecutamos la funcion ShowEditor del gridview:
gvGroupStates.ShowEditor();
jueves, 30 de agosto de 2012
Usuarios y privilegios en Oracle
- El nombre de usuario no debe superar 30 caracteres, no debe tener caracteres especiales y debe iniciar con una letra.
- Un método de autentificación. El mas común es una clave o password, pero Oracle 10g soporta otros métodos (como biometric, certificado y autentificación por medio de token).
- Un Tablespace default, el cual es donde el usuario va a poder crear sus objetos por defecto, sin embargo, esto no significa que pueda crear objetos, o que tenga una cuota de espacio. Estos permisos se asignan de forma separada, salvo si utiliza el privilegio RESOURCE el que asigna una quota unlimited, incluso en el Tablespace SYSTEM! Sin embargo si esto ocurre, ud. puede posteriormente mover los objetos creados en el SYSTEM a otro Tablespace.
- Un Tablespace temporal, donde el usuario crea sus objetos temporales y hace los sort u ordenamientos.
- Un perfil o profile de usuario, que son las restricciones que puede tener su cuenta (opcional).
SQL> CREATE USER ahernandez IDENTIFIED BY ahz
DEFAULT TABLESPACE users;
Si no se indica un Tablespace por defecto, el usuario toma el que está definido en la BD (generalmente el SYSTEM). Para modificar el Tablespace default de un usuario se hace de la siguiente manera:
SQL> ALTER USER jperez DEFAULT TABLESPACE datos;
También podemos asignar a los usuarios un Tablespace temporal donde se almacenan operaciones de ordenamiento. Estas incluyen las cláusulas ORDER BY, GROUP BY, SELECT DISTINCT, MERGE JOIN, o CREATE INDEX (también es utilizado cuando se crean Tablas temporales).
SQL> CREATE USER jperez IDENTIFIED BY jpz
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
Adicionalmente, a cada usuario se puede asignar a un profile o perfil, que tiene dos propósitos principalmente:
- Limita el uso de recursos, lo que es recomendable, por ejemplo en ambientes de Desarrollo
- Garantiza y refuerza reglas de Seguridad a nivel de cuentas
SQL> CREATE USER jperez IDENTIFIED BY jpz
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
PROFILE resource_profile;
SQL> ALTER USER jperez
PROFILE perfil_desa;
2. Eliminar un Usuario de la Base de Datos
Para eliminar un usuario de la BD se hace uso de la clausula DROP USER y opcionalmente se puede utilizar CASCADE, para decirle que también elimine todos los objetos creados por ese usuario.
SQL> DROP USER jperez CASCADE;
3. Modificar cuentas de Usuarios
Para modificar un usuario creado, por ejemplo cambiar su clave, tenemos la sintáxis:
SQL> ALTER USER NOMBRE_USUARIO
IDENTIFIED BY CLAVE_ACCESO
[DEFAULT TABLESPACE ESPACIO_TABLA]
[TEMPORARY TABLESPACE ESPACIO_TABLA]
[QUOTA {ENTERO {K | M } | UNLIMITED } ON ESPACIO_TABLA
[PROFILE PERFIL];
4. Privilegios de Sistema y de Objetos
En Oracle existen dos tipos de privilegios de usuario.
4.1 System: Que permite al usuario hacer ciertas tareas sobre la BD, como por ejemplo crear un Tablespace. Estos permisos son otorgados por el administrador o por alguien que haya recibido el permiso para administrar ese tipo de privilegio. Existen como 100 tipos distintos de privilegios de este tipo.
En general los permisos de sistema, permiten ejecutar comandos del tipo DDL (Data definition Language), como CREATE, ALTER y DROP o del tipo DML (Data Manipulation Language). Oracle 10g tiene mas de 170 privilegios de sistema los cuales pueden ser vistos consultando la vista: SYSTEM_PRIVILEGE_MAP
Entre todos los privilegios de sistema que existen, hay dos que son los importantes: SYSDBA y SYSOPER. Estos son dados a otros usuarios que serán administradores de base de datos.
Para otorgar varios permisos a la vez, se hace de la siguiente manera:
SQL> GRANT CREATE USER, ALTER USER, DROP USER TO ahernandez;
4.2 Object: Este tipo de permiso le permite al usuario realizar ciertas acciones en objetos de la BD, como una Tabla, Vista, un Procedure o Función, etc. Si a un usuario no se le dan estos permisos sólo puede acceder a sus propios objetos (véase USER_OBJECTS). Este tipo de permisos los da el owner o dueño del objeto, el administrador o alguien que haya recibido este permiso explícitamente (con Grant Option).
Por ejemplo, para otorgar permisos a una tabla Ventas para un usuario particular:
SQL> GRANT SELECT,INSERT,UPDATE, ON analista.venta TO jperez;
Adicionalmente, podemos restringir los DML a una columna de la tabla mencionada. Si quisieramos que este usuario pueda dar permisos sobre la tabla Factura a otros usuarios, utilizamos la cláusula WITH GRANT OPTION. Ejemplo:
SQL> GRANT SELECT,INSERT,UPDATE,DELETE ON venta TO mgarcia WITH GRANT OPTION;
5. Asignar cuotas a Usuarios
Por defecto ningun usuario tiene cuota en los Tablespaces y se tienen tres opciones para poder proveer a un usuario de una quota:
5.1Sin limite, que permite al usuario usar todo el espacio disponible de un Tablespace.
5.2 Por medio de un valor, que puede ser en kilobytes o megabytes que el usuario puede usar. Este valor puede ser mayor o nenor que el tamaño del Tablespace asignado a él.
5.3 Por medio del privilegio UNLIMITED TABLESPACE, se tiene prioridad sobre cualquier cuota dada en un Tablespace por lo que tienen disponibilidad de todo el espacio incluyendo en SYSTEM y SYSAUX.
No se recomienda dar cuotas a los usuarios en los Tablespaces SYSTEM y SYSAUX, pues tipicamente sólo los usuarios SYS y SYSTEM pueden crear objetos en éstos. Tampoco dar cuotas en los Tablespaces Temporal o del tipo Undo.
6. Roles
Finalmente los Roles, que son simplemente un conjunto de privilegios que se pueden otorgar a un usuario o a otro Rol. De esa forma se simplifica el trabajo del DBA en esta tarea.
Por default cuando creamos un usuario desde el Enterprise Manager se le asigna el permiso de connect, lo que permite al usuario conectarse a la BD y crear sus propios objetos en su propio esquema. De otra manera, debemos asignarlos en forma manual.
Para crear un Rol y asignarlo a un usuario se hace de la siguiente manera:
SQL> CREATE ROLE appl_dba;
Opcionalmente, se puede asignar una clave al Rol:
SQL> SET ROLE appl_dba IDENTIFIED BY app_pwd;
Para asignar este Rol a un usuario:
SQL> GRANT appl_dba TO jperez;
Otro uso común de los roles es asignarles privilegios a nivel de Objetos, por ejemplo en una Tabla de Facturas en donde sólo queremos que se puedan hacer Querys e Inserts:
SQL> CREATE ROLE consulta;
SQL> GRANT SELECT,INSERT on analista.factura TO consulta;
Y finalmente asignamos ese rol con este “perfil” a distintos usuarios finales:
SQL> GRANT consulta TO ahernandez;
Nota: Existen algunos roles predefinidos, tales como:
CONNECT, CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SYNONYM, CREATE SEQUENCE, CREATE DATABASE LINK, CREATE CLUSTER,
ALTER SESSION, RESOURCE, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER, CREATE TYPE, CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR SCHEDULER, CREATE ANY JOB, CREATE JOB, EXECUTE ANY CLASS, EXECUTE ANY PROGRAM,
MANAGE SCHEDULER, etc.
DBA: Tiene la mayoría de los privilegios, no es recomendable asignarlo a usuarios que no son administradores.
SELECT_CATALOG_ROLE: No tiene privilegios de sistema, pero tiene cerca de 1600 privilegios de objeto.
Para consultar los roles definidos y los privilegios otorgados a través de ellos, utilize las vistas:
miércoles, 29 de agosto de 2012
Consultas en bases de datos SQL Server
Para realizar una consulta a una base de datos SQL Server, realizaremos lo siguiente como lo veremos en el ejemplo:
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString =
"Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=true";
// Provide the query string with a parameter placeholder.
string queryString =
"SELECT ProductID, UnitPrice, ProductName from dbo.products "
+ "WHERE UnitPrice > @pricePoint "
+ "ORDER BY UnitPrice DESC;";
// Specify the parameter value.
int paramValue = 5;
// Create and open the connection in a using block. This
// ensures that all resources will be closed and disposed
// when the code exits.
using (SqlConnection connection =
new SqlConnection(connectionString))
{
// Create the Command and Parameter objects.
SqlCommand command = new SqlCommand(queryString, connection);
command.Parameters.AddWithValue("@pricePoint", paramValue);
// Open the connection in a try/catch block.
// Create and execute the DataReader, writing the result
// set to the console window.
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}\t{2}",
reader[0], reader[1], reader[2]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
lunes, 27 de agosto de 2012
SECUENCIAS EN ORACLE (PARA SIMULAR EL AUTOINCREMENTO) CONCEPTO
CREATE SEQUENCE nombre_secuencia
INCREMENT BY numero_incremento
START WITH numero_por_el_que_empezara
MAXVALUE valor_maximo | NOMAXVALUE
MINVALUE valor_minimo | NOMINVALUE
CYCLE | NOCYCLE
ORDER | NOORDER
CREATE SEQUENCE incremento_id_cliente
INCREMENT BY 1
START WITH 100
create table clientes (
codigo number not null primary key,
nombre varchar2(100) unique not null,
cif varchar2(15) unique,
fechaalta date)
insert into clientes values (
incremento_id_cliente.NextVal,
'AjpdSoft',
'11225522F',
sysdate)
insert into clientes values (
incremento_id_cliente.NextVal,
'Otro cliente',
'00000G',
sysdate)
lunes, 23 de julio de 2012
Función para concatenar campos
Algunas veces es necesario combinar en forma conjunta (concatenar) los resultados de varios campos diferentes.
Cada base de datos brinda una forma para realizar esto:
Informix: ||
Oracle: CONCAT(), ||
SQL Server: +
MySQL: CONCAT()
La sintaxis para CONCAT() es la siguiente: CONCAT(cad1, cad2, cad3, ...): Concatenar cad1, cad2, cad3, y cualquier otra cadena juntas.
Por favor note que la función CONCAT() de Oracle sólo permite dos argumentos – sólo dos cadenas pueden colocarse juntas al mismo tiempo utilizando esta función.
Sin embargo, es posible concatenar más de dos cadenas al mismo tiempo en Oracle utilizando '||'. Observemos algunos ejemplos.
Supongamos que tenemos la siguiente tabla:
Tabla Geography region_name store_name East Boston East New York West Los Angeles West San Diego
Ejemplo 1:
MySQL/Oracle: SELECT CONCAT(region_name,store_name) FROM Geography WHERE store_name = 'Boston';
Resultado : 'EastBoston'
Ejemplo 2:
Oracle: SELECT region_name || ' ' || store_name FROM Geography WHERE store_name = 'Boston'; Resultado : 'East Boston'
Ejemplo 3: SQL Server: SELECT region_name + ' ' + store_name FROM Geography WHERE store_name = 'Boston';
Resultado : 'East Boston'
FORMATO FECHA EN ORACLE
Formatos de Fecha
La función TO_CHAR(Fechas en BD Informix
TO_DATE ('2012-03-01 14:28:00' ,'%Y-%m-%d %H:%M:%S' )
insert into hiepiact (acthis,actnum,acthex,actfen) values (708,'URGE',758,1,null,TO_DATE ('2012-03-01 14:28:00' ,'%Y-%m-%d %H:%M:%S' ))Esto porque informix acepta solo el formato 'YYYY-MM-DD HH:MM:SS'.
jueves, 12 de julio de 2012
Funcion para valores Nulos
Transformación de valores nulos COALESCE () , NVL() , NVL2() , ISNULL()
Devuelve la primera expresión distinta de NULL entre sus argumentos.
Esta función para la mayoria de las base de datos (Sql Server ,Oracle, …..) Devuelve la primera expresion distinta a null de sus argumentos.
SELECT Nombre, Apellido, COALESCE(Sueldo, 0) AS Sueldo,(Incremnto + COALESCE(Sueldo, 0)) AS Total
FROM Empleado;
Oracle : Trabjando con Oracle es posible usar las funciones NVL y NVL2. (NVL) es similar a la función COALESCE, pero se limita a dos argumentos. (NVL2) recibe tres argumentos, si el primer argumento es NULL, retorna el valor del segundo argumento, caso contrario retorna el valor del tercer argumento.
SELECT Nombre, Apellido, NVL(Sueldo, 0) AS Sueldo, NVL2(Sueldo, Incremento, Incremento + NVL(Sueldo, 0)) AS Total
FROM Empleado;
Sql Server : Trabajando con SQL Server puede usar la función ISNULL (), que es idéntica a las función NVL de Oracle
SELECT Nombre, Apellido, ISNULL(Sueldo, 0) AS Sueldo, (Incremento + ISNULL(Sueldo, 0)) AS Total
FROM Empleado
Informix :
Trabjando con Informix es posible usar las funciones NVL. (NVL) es similar a la función COALESCE, pero se limita a dos argumentos. Si el primer argumento es NULL, retorna el valor del segundo argumento.
SELECT Nombre, Apellido, NVL(Sueldo, 0) AS Sueldo, NVL(Sueldo, Incremento) + NVL(Sueldo, 0)) AS Total
FROM Empleado;
Funcion TRIM() en SQL Server 2008R2
SQL Server no tiene función que puede recortar espacios inicial o finales de cualquier cadena al mismo tiempo. SQL tienen LTRIM() y RTRIM() que puede recortar espacios iniciales y finales respectivamente. SQL Server 2008 también no tiene función TRIM(). Usuario puede fácilmente utilizar LTRIM() y RTRIM() juntos y simular la funcionalidad TRIM().
SELECT RTRIM(LTRIM(' Word ')) AS Answer;
Debe dar resultado sin espacios inicial o finales.Respuesta
Word
He creado tras UDF que todos los días cuando tengo a TRIM() cualquier palabra o columna.
CREATE FUNCTION dbo.TRIM(@string VARCHAR(MAX))
RETURNS VARCHAR(MAX)
BEGIN
RETURN LTRIM(RTRIM(@string))
END
GO
Ahora déjenos probar por encima de la UDF, ejecuta la siguiente declaración donde hay iniciales y espacios alrededor de palabra.
SELECT dbo.TRIM(' leading trailing ')
Devolverá la cadena en la ventana de resultado como'leading trailing'
No habrá ningún espacio a su alrededor. Si espacios adicionales son datos inútiles, cuando se insertan datos en la base de datos debe recortarse. Si hay necesitamos de espacios en los datos, pero en algunos casos deben recortarse al recuperar nos puede utilizar columnas calculadas. Leer más sobre columnas SQL SERVER – Puzzle – solución – calcula explicación de tipo de datos de columnas calculadas.
El ejemplo siguiente muestra las columnas calculadas cómo puede utilizarse para recuperar datos recortados.
USE AdventureWorks
GO
/* Create Table */
CREATE TABLE MyTable
(
ID TINYINT NOT NULL IDENTITY (1, 1),
FirstCol VARCHAR(150) NOT NULL,
TrimmedCol AS LTRIM(RTRIM(FirstCol))
) ON [PRIMARY]
GO
/* Populated Table */
INSERT INTO MyTable
([FirstCol])
SELECT ' Leading'
UNION
SELECT 'Trailing '
UNION
SELECT ' Leading and Trailing '
UNION
SELECT 'NoSpaceAround'
GO
/* SELECT Table Data */
SELECT *
FROM MyTable
GO
/* Dropping Table */
DROP TABLE MyTable
GO
Por encima de consulta demuestra que cuando recuperar datos recupera recorta datos en la columna TrimmedCol. Puede ver el resultado en la siguiente imagen.Calcula las columnas se crean ejecución tiempo y rendimiento pueden no ser óptimas si se recupera gran cantidad de datos. Algún otro tiempo veremos cómo podemos mejorar el rendimiento de columna calculada usando índice.
viernes, 29 de junio de 2012
Protocolo HTTP
Desde 1990, el protocolo HTTP (Protocolo de transferencia de hipertexto) es el protocolo más utilizado en Internet. La versión 0.9 sólo tenía la finalidad de transferir los datos a través de Internet (en particular páginas Web escritas en HTML). La versión 1.0 del protocolo (la más utilizada) permite la transferencia de mensajes con encabezados que describen el contenido de los mensajes mediante la codificación MIME.
El propósito del protocolo HTTP es permitir la transferencia de archivos (principalmente, en formato HTML). entre un navegador (el cliente) y un servidor web (denominado, entre otros, httpd en equipos UNIX) localizado mediante una cadena de caracteres denominada dirección URL.
Comunicación entre el navegador y el servidor
La comunicación entre el navegador y el servidor se lleva a cabo en dos etapas:
El navegador realiza una solicitud HTTP
El servidor procesa la solicitud y después envía una respuesta HTTP
En realidad, la comunicación se realiza en más etapas si se considera el procesamiento de la solicitud en el servidor. Dado que sólo nos ocupamos del protocolo HTTP, no se explicará la parte del procesamiento en el servidor en esta sección del artículo. Si este tema les interesa, puede consultar el articulo sobre el tratamiento de CGI.
Solicitud HTTP
Una solicitud HTTP es un conjunto de líneas que el navegador envía al servidor. Incluye: Una línea de solicitud: es una línea que especifica el tipo de documento solicitado, el método que se aplicará y la versión del protocolo utilizada. La línea está formada por tres elementos que deben estar separados por un espacio:
- el método
- la dirección URL
- la versión del protocolo utilizada por el cliente (por lo general, HTTP/1.0)
- Los campos del encabezado de solicitud: es un conjunto de líneas opcionales que permiten aportar información adicional sobre la solicitud y/o el cliente (navegador, sistema operativo, etc.). Cada una de estas líneas está formada por un nombre que describe el tipo de encabezado, seguido de dos puntos (:) y el valor del encabezado.
- El cuerpo de la solicitud: es un conjunto de líneas opcionales que deben estar separadas de las líneas precedentes por una línea en blanco y, por ejemplo, permiten que se envíen datos por un comando POST durante la transmisión de datos al servidor utilizando un formulario.
MÉTODO VERSIÓN URLENCABEZADO: Valor . . . ENCABEZADO: Valor Línea en blanco
CUERPO DE LA SOLICITUD
A continuación se encuentra un ejemplo de una solicitud HTTP:
GET http://es.kioskea.net HTTP/1.0 Accept : Text/html If-Modified-Since : Saturday, 15-January-2000 14:37:11 GMT User-Agent : Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)
Comandos
Comando Descripción
GET Solicita el recurso ubicado en la URL especificada
HEAD Solicita el encabezado del recurso ubicado en la URL especificada
POST Envía datos al programa ubicado en la URL especificada
PUT Envía datos a la URL especificada
DELETE Borra el recurso ubicado en la URL especificada
Encabezados
Nombre del encabezado Descripción
Accept Tipo de contenido aceptado por el navegador (por ejemplo, texto/html). Consulte Tipos de MIME
Accept-Charset Juego de caracteres que el navegador espera
Accept-Encoding Codificación de datos que el navegador acepta
Accept-Language Idioma que el navegador espera (de forma predeterminada, inglés)
Authorization Identificación del navegador en el servidor
Content-Encoding Tipo de codificación para el cuerpo de la solicitud
Content-Language Tipo de idioma en el cuerpo de la solicitud
Content-Length Extensión del cuerpo de la solicitud
Content-Type Tipo de contenido del cuerpo de la solicitud (por ejemplo, texto/html). Consulte Tipos de MIME
Date Fecha en que comienza la transferencia de datos
Forwarded Utilizado por equipos intermediarios entre el navegador y el servidor
From Permite especificar la dirección de correo electrónico del cliente
From Permite especificar que debe enviarse el documento si ha sido modificado desde una fecha en particular
Link Vínculo entre dos direcciones URL
Orig-URL Dirección URL donde se originó la solicitud
Referer Dirección URL desde la cual se realizó la solicitud
User-Agent Cadena con información sobre el cliente, por ejemplo, el nombre y la versión del navegador y el sistema operativo
Respuesta HTTP
Una respuesta HTTP es un conjunto de líneas que el servidor envía al navegador. Está constituida por: Incluye: Una línea de estado: es una línea que especifica la versión del protocolo utilizada y el estado de la solicitud en proceso mediante un texto explicativo y un código. La línea está compuesta por tres elementos que deben estar separados por un espacio: La línea está formada por tres elementos que deben estar separados por un espacio:
- la versión del protocolo utilizada
- el código de estado
- el significado del código
- Los campos del encabezado de respuesta: es un conjunto de líneas opcionales que permiten aportar información adicional sobre la respuesta y/o el servidor. Cada una de estas líneas está compuesta por un nombre que califica el tipo de encabezado, seguido por dos puntos (:) y por el valor del encabezado Cada una de estas líneas está formada por un nombre que describe el tipo de encabezado, seguido de dos puntos (:) y el valor del encabezado.
- El cuerpo de la respuesta: contiene el documento solicitado.
VERSIÓN-HTTP CÓDIGO EXPLICACIÓNCUERPO DE LA RESPUESTAENCABEZADO: Valor . . . ENCABEZADO: Valor Línea en blanco
A continuación se encuentra un ejemplo de una respuesta HTTP:
HTTP/1.0 200 OK Date: Sat, 15 Jan 2000 14:37:12 GMT Server : Microsoft-IIS/2.0 Content-Type : text/HTML Content-Length : 1245 Last-Modified : Fri, 14 Jan 2000 08:25:13 GMT
Encabezados de respuesta
Nombre del encabezado Descripción
Content-Encoding Tipo de codificación para el cuerpo de la respuesta
Content-Language Tipo de idioma en el cuerpo de la respuesta
Content-Length Extensión del cuerpo de la respuesta
Content-Type Tipo de contenido del cuerpo de la respuesta (por ejemplo, texto/html). Consulte Tipos de MIME
Date Fecha en que comienza la transferencia de datos
Expires Fecha límite de uso de los datos
Forwarded Utilizado por equipos intermediarios entre el navegador y el servidor
Location Redireccionamiento a una nueva dirección URL asociada con el documento
Server Características del servidor que envió la respuesta
Los códigos de respuesta
Son los códigos que se ven cuando el navegador no puede mostrar la página solicitada. El código de respuesta está formado por tres dígitos: el primero indica el estado y los dos siguientes explican la naturaleza exacta del error.
Código Mensaje Descripción
10x Mensaje de información Estos códigos no se utilizan en la versión 1.0 del protocolo
20x Éxito Estos códigos indican la correcta ejecución de la transacción
200 OK La solicitud se llevó a cabo de manera correcta
201 CREATED Sigue a un comando POST e indica el éxito, la parte restante del cuerpo indica la dirección URL donde se ubicará el documento creado recientemente.
202 ACCEPTED La solicitud ha sido aceptada, pero el procedimiento que sigue no se ha llevado a cabo
203 PARTIAL INFORMATION Cuando se recibe este código en respuesta a un comando de GET indica que la respuesta no está completa.
204 NO RESPONSE El servidor ha recibido la solicitud, pero no hay información de respuesta
205 RESET CONTENT El servidor le indica al navegador que borre el contenido en los campos de un formulario
206 PARTIAL CONTENT Es una respuesta a una solicitud que consiste en el encabezado range. El servidor debe indicar el encabezado content-Range
30x Redirección Estos códigos indican que el recurso ya no se encuentra en la ubicación especificada
301 MOVED Los datos solicitados han sido transferidos a una nueva dirección
302 FOUND Los datos solicitados se encuentran en una nueva dirección URL, pero, no obstante, pueden haber sido trasladados
303 METHOD Significa que el cliente debe intentarlo con una nueva dirección; es preferible que intente con otro método en vez de GET
304 NOT MODIFIED Si el cliente llevó a cabo un comando GET condicional (con la solicitud relativa a si el documento ha sido modificado desde la última vez) y el documento no ha sido modificado, este código se envía como respuesta.
40x Error debido al cliente Estos códigos indican que la solicitud es incorrecta
400 BAD REQUEST La sintaxis de la solicitud se encuentra formulada de manera errónea o es imposible de responder
401 UNAUTHORIZED Los parámetros del mensaje aportan las especificaciones de formularios de autorización que se admiten. El cliente debe reformular la solicitud con los datos de autorización correctos
402 PAYMENT REQUIRED El cliente debe reformular la solicitud con los datos de pago correctos
403 FORBIDDEN El acceso al recurso simplemente se deniega
404 NOT FOUND Un clásico. El servidor no halló nada en la dirección especificada. Se ha abandonado sin dejar una dirección para redireccionar... :)
50x Error debido al servidor Estos códigos indican que existe un error interno en el servidor
500 INTERNAL ERROR El servidor encontró una condición inesperada que le impide seguir con la solicitud (una de esas cosas que les suceden a los servidores...)
501 NOT IMPLEMENTED El servidor no admite el servicio solicitado (no puede saberlo todo...)
502 BAD GATEWAY El servidor que actúa como una puerta de enlace o proxy ha recibido una respuesta no válida del servidor al que intenta acceder
503 SERVICE UNAVAILABLE El servidor no puede responder en ese momento debido a que se encuentra congestionado (todas las líneas de comunicación se encuentran congestionadas, inténtelo de nuevo más adelante)
504 GATEWAY TIMEOUT La respuesta del servidor ha llevado demasiado tiempo en relación al tiempo de espera que la puerta de enlace podía admitir (excedió el tiempo asignado...)
Más información
Para obtener más información sobre el protocolo HTTP, consulte la RFC (petición de comentarios)1945, que explica el protocolo en detalle:
RFC 1945 - Protocolo de transferencia de hipertexto -- HTTP/1.0 (traducción al francés)
RFC 1945 - Protocolo de transferencia de hipertexto -- HTTP/1.0 (versión original)
RFC 2616 - Protocolo de transferencia de hipertexto -- HTTP/1.0 (versión original)
sábado, 16 de junio de 2012
Comandos de Windows
En el menú de inicio/ejecutar podremos ejecutar los siguientes comandos:
access.cpl: comando para acceder a la opciones de accesibilidad.
accwiz: comando para usar el asistente para accesibilidad.
hdwwiz.cpl: comando para usar el asistente de agregar hardware.
appwiz.cpl: comando para agregar o quitar programas.
control admintools: comando para usar las herramientas administrativas.
wuaucpl.cpl: comando para utilizar actualizaciones automaticas.
fsquirt: comando para usar el asistente de transferencia con bluetooth.
cal: comando para utilizar la calculadora de Windows.
certmgr.msc: comando para utilizar certificados.
charmap: comando para ver el mapa de caracteres.
chkdsk: comando para utilidades de disco.
cmd: comando para utilizar el promp de windows.
clpbrd: comando para ver el visor de portafolios.
dcomcnfg: comando para ver el servicio de componentes.
compmgmt.msc: comando para ver la administración de equipos.
control: comando para abrir el panel de control.
timedate.cpl: comando para cambiar la hora del sistema, debemos tener permiso para ejecutarlo.ddeshare: comando para ejecutar recursos DDE en el equipo.
devmgmt.msc: comando para ejecutar el administrador de dispositivos.
dxdiag: comando para ejecutar la herramienta de diagnóstico de DirecX.
cleanmgr: comando para usar la herramienta de liberar algún dispositivo del equipo.
dfrg.msc: comando para desfragmentar discos.
diskmgmt.msc: comando para ejecutar el administrador de discos.
diskpart: comando para ejectuar el menu de particiones.
control desktop: comando para ejecutar la ventana de propiedades de pantalla.
desk.cpl: igual que el control desktop, muestra la ventana de propiedades de pantalla.
drwtsn32: comando para ejecutar el Dr. watson para windows.
verifier: comando para ejecutar el administrador del comprobador de controlador eventvwr.msc: comando para ver el visor de sucesos local.
migwiz: comando para ejecutar el asistente de transferencia de archivo y configuraciones.
sigverif: comando para ejecutar el comprobador de la firma de un archivo.
firefox: comando para ejecutar el navegador firefox.
control folders: comando para ejecutar las opciones de carpetas.
control fonts: comando para abrir la carpeta de fuentes.
fonts: comando para abrir windows\font.
freecell: comando para abrir el juego de carta blanca.
joy.cpl: comando para abrir los controles de dispositivos de juegos.
gpedit.msc: comando para abrir la directiva de grupo.
mshearts: comando para abrir el juego de corazones.
helpctr: comando para abrir el centro de ayuda.
hypertrm: comando para abrir el hyperterminal.
iexpress: comando para abrir ie 2.0.
ciadv.msc: comando para abrir el servicio de index server.
icwconn1: comando para abrir el asistente para conectar a internet.
iexplore: comando para abrir ie.
inetcpl.cpl: comando para abrir las propiedades de internet explorer.
control keyboard: comando para abrir las propiedades del teclado.
secpol.msc: comando para abrir configuración de seguridad local\directivas de restricción de software.
lusrmgr.msc: comando para abrir directiva de usuarios locales y de grupos.
logoff: comando para cerrar la sesion.
mrt: comando para abrir la herramienta de software mal intencionado.
winchat: comando para abrir winchat de windows.
moviemk: comando para abrir windows movie maker.
mspaint: comando para abrir paint.
mobsync: comando para sincronizar instancias.
winmine: comando para abrir el buscaminas player.
control mouse: comando para abrir las propiedades del ratón.
main.cpl: comando para abrir las propiedades del ratón.
conf: comando para abrir netmeeting.
control netconnections: comando para abrir propiedades de red.
ncpa.cpl: comando para abrir propiedades o conexiones de red.
netsetup.cpl: comando para abrir el asistente para configuracion de red.
notepad: comando para abrir el notepad.
packager: comando para abrir el empaquetador de objeto del sistema.
odbccp32.cpl: comando para abrir el administrador de origen de datos odbc.
osk: comando para ver el teclado de windows en pantalla.
msimn: comando para abrir outlook express.
pbrush: comando para abrir el paint.
perfmon.msc: comando para ver el monitor del sistema.
telephon.cpl: comando para abrir el asitente de marcado.
dialer: comando para abrir el marcador telefonico.
pinball: comando para abrir el juego pinball.
powercfg.cpl: comando para abrir las propiedades de opciones de energia.
intl.cpl: comando para abrir la configuracion regional y de idioma.
regedit: comando para abrir el registro de windows.
rasphone: comando para conectar a una red de Dominio o remota o vpn.
mstsc: comando para ejecutar el escritorio remoto.
ntmsmgr.msc: comando para abrir solicitudes de medios extraibles.
ntmsoprq.msc: comando para abrir solicitudes de medios extraibles, pero de solicitud del operador.
rsop.msc: comando para abrir o realizar el conjunto resultante de directivas.
control schedtasks: comando para abrir el administrador de tareas programadas.
wscui.cpl: comando para abrir el centro de seguridad de windows del pc.
services.msc: comando para abrir administrar los servicios del sistema.
fsmgmt.msc: comando para administrar las carpetas compartidas.
shutdown: comando para apagar el sistema.
mmsys.cpl: comando para abrir las propiedades de sonido y audio.
spider: comando para abrir el juego de spider.
sysedit: comando para abrir el editor de configuración del sistema.
msconfig: comando para abir la utilidad del sistema.
msinfo32: comando para ver toda la información del sistema.
sysdm.cpl: comando para ver la ventana de propiedades del sistema.
taskmgr: comando para abrir el administrador de tareas.
telnet: comando para ejecutar telnet.
nusrmgr.cpl: comando para abrir la ventana de cuentas de usuario.
utilman: comando para abrir el administrador de utilidades.
wab: comando para abrir la libreta de direcciones predeterminada de windows.
wabmig: comando para abrir la herramienta de importación de direcciones de la libreta pred.
explorer: comando para abrir el explorador de carpetas.
firewall.cpl: comando para abrir el firewall de windows.
magnify: comando para abrir el ampliador de windows.
wmimgmt.msc: comando para abrir el wmi.
wmplayer: comando para abrir el windows media player.
msmsgs: comando para abrir el messenger predeterminado de windows.
syskey: comando para cifrar la base de datos de windows.
wupdmgr: comando para conectar a update de windos y actualizarlo.
winver: comando para ver el acerca de windows, muestra la inf. del so.
write: comando para abrir el wordpad.