HTTP/CGI - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

HTTP/CGI

Description:

HTTP HyperText Transfer Protocol provee una sem tica simple ... Status Codes. Informational. Successful. Redirection. Client error. Server error. HTTP/CGI ... – PowerPoint PPT presentation

Number of Views:135
Avg rating:3.0/5.0
Slides: 26
Provided by: emon1
Category:
Tags: cgi | http | cods

less

Transcript and Presenter's Notes

Title: HTTP/CGI


1
HTTP/CGI
  • Edwin Montoya

2
Introducción (1)
  • HTTP/CGI fue el modelo precursor de desarrollo de
    aplicaciones basadas en Web.
  • HTTP HyperText Transfer Protocol provee una
    semática simple similar a RPC sobre sockets.
  • HTTP puede acceder recursos basados en URL
  • Principalmente estos recursos son páginas HTML y
    objetos MIME.
  • Un URL Universal Resource Locator es un esquema
    de nombre universal para identificar todos los
    recuros Web.
  • Un URL para localizar programas? -gt CGI
  • Porque es similar a un RPC?
  • Obtengo parámetros (HTML) -gt ejecuto programa -gt
    retorno resultados (HTML)

3
Introducción (2)
  • Cliente (browser) Página HTML Tag especial
    ltFORMgt
  • Envia el requerimiento HTTP al servidor enviando
    los parámetros y el programa a ejecutar.
  • El Servidor HTTP recibe el requerimiento y pasa
    los parámetros y el requerimiento a otro programa
    usando el protocolo CGI Common Gateway
    Interface
  • El servidor CGI puede estar escrito en cualquier
    lenguaje que pueda leer la entrada/salida
    estándar y variables de ambiente.
  • El servidor HTTP lanza el programa CGI por cada
    requerimiento.
  • El programa se ejecuta y retorna los resultadis
    en formato HTML/HTTP hacia el servidor.
  • El servidor a su vez retorna el resultado en el
    mismo formato hacia el browser.

4
Introducción (3)
  • Clientes y Servidor HTTP usan MIME para la
    representación de datos para describir el
    contenido de los mensajes.
  • Con HTTP/CGI y un ambiente de desarrollo se
    pueden desarrollar aplicaciones basadas en Web.

5
Introducción a HTTP
  • Varias versiones
  • HTTP/0.9
  • HTTP/1.0
  • HTTP/1.1
  • HTTP es un protocolo del estilo RPC sobre TCP/IP
  • HTTP es utilizado para acceder y recuperar
    recursos vía URL
  • HTTP es stataless
  • Protocolo Request / Response
  • Cliente -gt Servidor (Request)
  • Servidor -gt Cliente (Response)
  • HTTP Data representation
  • Pasa datos auto-descritos
  • El cliente informa al servidor que representación
    de datos puede entender.
  • Cliente y Servidor negocian los tipos de datos

6
Protocolo HTTP
  • El protocolo HTTP consiste de intercambio
    sencillo request/response

7
Examples of HTTP Operation
8
Intermediate HTTP Systems
9
HTTP Messages
  • Requests
  • Request line
  • General header
  • Request header
  • Entity header
  • Entity body
  • Responses
  • Response line
  • General header
  • Response header
  • Entity header
  • Entity body

10
HTTP Message Structure
11
General Header Fields
  • Cache control
  • Connection
  • Data
  • Forwarded
  • Keep alive
  • MIME version
  • Pragma
  • Upgrade

12
Request Methods
  • Request-Line Method ltSPgt Request_URL ltSPgt
    HTTP-Version ltCRLFgt
  • Methods
  • Options
  • Get
  • Head
  • Post
  • Put
  • Patch
  • Copy
  • Move
  • Delete
  • Link
  • Unlink
  • Trace
  • Wrapped
  • Extension-method

13
Request Header Field
  • Accept
  • Accept charset
  • Accept encoding
  • Accept language
  • Authorization
  • From
  • Host
  • If modified since
  • Proxy authentication
  • Range
  • Referrer
  • Unless
  • User agent

14
Response Messages
  • Status line followed by one or more general,
    response and entity headers, followed by optional
    entity body
  • Status-Line HTTP-Version ltSPgt Status-Code ltSPgt
    Reason-Phrase ltCRLFgt

15
Status Codes
  • Informational
  • Successful
  • Redirection
  • Client error
  • Server error

16
Response Header Fields
  • Location
  • Proxy authentication
  • Public
  • Retry after
  • Server
  • WWW-Authenticate

17
Entity Header Fields
  • Allow
  • Content encoding
  • Content language
  • Content length
  • Content MD5
  • Content range
  • Content type
  • Content version
  • Derived from
  • Expires
  • Last modified
  • Link
  • Title
  • Transfer encoding
  • URL header
  • Extension header

18
Entity Body
  • Arbitrary sequence of octets
  • HTTP transfers any type of data including
  • text
  • binary data
  • audio
  • images
  • video
  • Interpretation of data determined by header
    fields
  • Content encoding, content type, transfer encoding

19
Ejemplos
  • Request
  • GET /path/file.html HTTP/1.0
  • Accept text/html
  • Accept audio/x
  • Host 200.12.180.4
  • User-Agent MacWeb
  • Response
  • HTTP/1.0 200 OK
  • Server NCSA/1.3
  • Mime_version 1.0
  • Content_type text/html
  • Content_lenght 2000
  • ltHTMLgt
  • lt/HTMLgt

20
CGI
  • Web Form es una página HTML con uno o más campos
    de entrada y un boton obligatorio Submit
  • Una vez click sobre el boton Submit el
    browser envia el contenido de los campos de
    entrada hacia el servidor.
  • Arma un mensaje HTTP para enviar el requerimiento
    y luego invoke un método GET o POST en el lado
    del servidor.
  • El servidor pasa el requerimiento y sus
    parametros a otro programa usando un protocolo
    llamado CGI

21
3-Tier Client/Server, Web-Style
Web Server
HTML docs
DBMS
Web Browser
HTML Form
Internet TCP/IP
TP Mon
Web Client
HTTP
HTTP
Lotus Notes
CGI
Apps
Tier-1
Tier-3
Tier-2
22
Formas HTML
  • Las formas son usadas para obtener información en
    un browser para una aplicación de servidor basada
    en CGI
  • Existe un Tag especial ltFORMgt lt/FORMgt
  • ltFORM METHODPOST ACTION HTTP//www.server.
    com/cgi-bin/formAppgt
  • ltINPUT TYPETEXT NAMEparam1gt
  • ltINPUT TYPETEXT NAMEparam2gt
  • ltINPUT TYPETEXT NAMEoperaciongt
  • ltINPUT TYPESUBMIT gt
  • lt/FORMgt

23
Ejecución programa CGI
Web Server
Variables Ambiente
Web Browser
submit
Submit
POST
2
3
1
Write Envirtonment
4
Programa CGI
Ejecutar
5
Read Envirtonment
6
7
Standard Input
8
BD
Standard Output
9
Return HTML File
10
24
GET vs POST
  • Cuando se invoca una forma con el método GET, los
    parámetros son enviados como parte del URL
  • GET causa que los campos de entrada de la forma
    namevalor sean adicionados al final del URL
    despues de un ?
  • Ejemplo
  • http//www.server.com/cgi-bin/programa?name1value
    1name2value2name3value3
  • GET causa que el servidor Web haga parse del URL
    e inserte el string despues del ? en una
    variable de ambiente llamada query-string
  • La aplicación CGI necesita leer la variable de
    ambiente query-string para obtener los parámetros
    de la forma.
  • POST adiciona el contenido en el body de un
    mensaje HTML
  • El programa CGI lee los campos de entrada de la
    entrada estándar.
  • Cual es mejor?
  • Muchas veces algunos S.O limitan el tamaños de
    las variables de ambiente a 256 1024 bytes
  • Lo más recomendado en metodo POST que no tiene
    limitaciones de tamaño.

25
Variables de ambiente CGI
  • AUTH_TYPE
  • CONTENT_LENGTH
  • CONTENT_TYPE
  • DOCUMENT_ROOT
  • GATEWAY_INTERFACE
  • HTTP_ACCEPT
  • HTTP_COOKIE
  • HTTP_FROM
  • HTTP_REFERER
  • HTTP_USER_AGENT
  • PATH_INFO
  • PATH_TRANSLATED
  • QUERY_STRING
  • REMOTE_ADDR
  • REMOTE_HOST
  • REMOTE_IDENT
  • REMOTE_USER
  • REQUEST_METHOD
  • SCRIPT_NAME
  • SERVER_NAME
  • SERVER_PORT
  • SERVER_PROTOCOL
  • SERVER_SOFTWARE
Write a Comment
User Comments (0)
About PowerShow.com