Informe Nro. 1 Análisis de protocolos de capa de aplicación Web (protocolo HTTP) Leandro Lucarella (77891) 1. Introducción HTTP[1] (Hyper Text Transfer Protocol) es un protocolo de capa de aplicación sin estado, utilizado principalmente para la World-Wide Web, aunque sus aplicaciones van mucho más allá de ella. Debido a su gran generalidad y flexibilidad puede ser utilizado para una gran variedad de aplicaciones, en particular a través de extensiones, como por ejemplo WebDAV[2] (Web Distributed Authoring and Versioning), que permiten implementar aplicaciones para control de versiones distribuídas como Subversion[3]. Gran parte de esta flexibilidad proviene de la capacidad de negociar la representación de los contenidos, y es lo que permite muy fácilmente montar otros protocolos en él. Otro uso que va en forma creciente de este protocolo es la llamada remota a procedimientos (RPC o Remote Procedure Call), siendo tal vez el más difundido XMLRPC[4], aunque no sea un estándar de la IETF[5]. He tenido incluso yo la posibilidad de encapsular un protocolo sobre HTTP para el desarrollo de un trabajo práctico para la asignatura Taller de Programación I[6] (75.42), al desarrollar un protocolo para control y monitoreo de una planta química[7]. 2. Descripción del protocolo El protocolo se compone básicamente de un Request, un requerimiento realizado por el cliente, más un Response, la respuesta devuelta por el servidor. A su vez cada una de estas partes se divide en Headers (información de control) y Body (información del usuario). 3. Primitivas de servicios y unidades de protocolo asociadas El protocolo se compone básicamente de un Request, un requerimiento realizado por el cliente, más un Response, la respuesta devuelta por el servidor. A su vez cada una de estas partes se divide en Headers (información de control) y Body (información del usuario transmitida). 5. Preguntas 5.1 Sobre el punto 2, no entiendo bien a qué se refiere con "grupo de unidades del protocolo". Para realizar el informe asumí que se trata de las "primitivas". 5.2 No es una pregunta, pero se hace muy difícil describir un protocolo en menos de 3 renglones. 5.3 6. Referencias [1] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P. and T.Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, Junio 1999. [2] Clemm, G., Amsden, J., Ellison, T., Kaler, C. and Whitehead, J., "Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning)", RFC 3253, Marzo 2002. [3] Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato: "Version Control with Subversion", O'Reilly Media. ISBN: 0-596-00448-6, 2004, http://svnbook.red-bean.com/, Capítulo 1, sección 4: "Subversion's Architecture", Apéndice C: "WebDAV and Autoversioning" [4] Winer, D., "XML-RPC Specification", Junio 1999, http://www.xmlrpc.com/. [5] Internet Task Force: http://www.ietf.org/ [6] Taller de Programación I, Departamento de Computación, Universidad de Buenos Aires: http://www.fi.uba.ar/materias/7542/ [7] Lucarella, L.: "Propuesta de servidor v0.4", Octubre 2003. http://svn.llucax.hn.org/svn/plaqui/docs/server.txt