Skip to content

samsagz/MyP_HttpServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyP_HttpServer

Servidor HTTP 1.1

UNIVERSIDAD EAFIT

Realizado por : Ana Builes Arias - German Bedoya - Juan Fernando Zuluaga

Este documento es una descripción de arquitectura (AD) para el proyecto caso de estudio Servidor Http 1.1. Está descripcion de arquitectura intenta dar algunos ejemplos de la arquitectura del caso de estudio y como los diferentes componentes de está se relacionan entre sí.

Este documento captura la arquitectura del caso de estudio Servidor Http 1.1 y el propósito es estudiar, analizar y documentar las decisiones claves en el diseño de la arquitectura del proyecto así como sus capacidades, la tecnología elegida y los requisitos identificados para los interesados en el caso de estudio.

VISTA DE REQUERIMIENTOS

# Descripción de los Requerimientos Funcionales
1 El sistema debe de cumplir con el estándar HTTP/1.1 de 1999
2 El sistema debe de almacenar en un log todas las solicitudes hechas, sean correctas o incorrectas
3 El sistema debe de analizar la ruta ingresada y responder 200 si la ruta está correcta o 404 si la ruta no se encuentra
# Descripción de los Requerimientos No Funcionales
1 El sistema deberá ser eficiente, deberá soportar por lo menos 50 transacciones por segundo
2 El código del sistema debe ser bien organizado y legible
3 El sistema deberá ser mantenible en el tiempo

METAS DE CALIDAD

En esta sección se hablará sobre los Atributos de Calidad objetivos en la arquitectura del caso de estudio

ATRIBUTOS DE CALIDAD

1. CONFIABILIDAD El sistema debe ser tolerante a fallos.

2. MANTENIBILIDAD Ante cualquier fallo en el sistema este deberá ser de fácil identificación para su reparación en el menor tiempo posible

RESTRICCIONES DE LA ARQUITECTURA

  1. En la construcción del sevidor no se podrá realizar con frameworks, deberá ser una implementación desde cero en algún lenguaje de programación.
  2. El servidor deberá estar en un repositorio en GitHub
  3. El servidor deberá ser probado con postman o CURL

ESTRATEGIA DE LA SOLUCIÓN

La estrategia de la solución por la cual se optó tras el análisis realizado para crear el servidor HTTP vr 1.1 es utilizar el lenguaje de programación C# ya que con este lenguaje podemos tener un desarrollo ágil y sencillo, enfocándonos en la facilidad del codigo para estar organizado y legible para que cualquier persona pueda entenderlo. Además, se considera que este lenguaje de programación tiene una curva de aprendizaje menos pronunciada debido a que el equipo de desarrollo tiene dominio en este lenguaje.

VISTA DE ALTO NIVEL

DIAGRAMA DE FLUJO

DIAGRAMA DE CLASES

DECISIONES DE DISEÑO

El servidor contará con dos tipos de verbos GET y POST. También incluirá las siguientes rutas para la visualización del usuario:

  • localhost:8080/index.html
  • localhost:8080/404.html

Adicional el servidor estará abierto en el puerto 8080.

RUTAS DEL CODIGO

Repositorio : MyP_HttpServer

CASOS DE PRUEBA

ID NOMBRE DEL CASO DE PRUEBA OBJETIVOS DEL CASO DE PRUEBA
UT001 Validar estructura header Validar que la estructura del header corresponda a la definida.
UT002 Verificar la respuesta de error Al momento de no existir una url ingresada, responder correctamente con el mensaje 404
UT003 Verificar la escritura del log Al momento de realizar una solicitud, se debe de crear un archivo .txt con la peticion y las caracteristicas de la misma

INSTRUCTIVO DE USO

Nota: tienes que tener en cuenta que para poder ejecutar el codigo y las pruebas, se deben de tener las siguientes herramientas:

  • Postman.
  • Visual Studio IDE.
  • Git.

Para realizar la ejecución del codigo se deben de realizar los siguientes pasos:

  1. Dirigirse a la consola de Git, descargar o generar un clon del codigo del proyecto.
  2. Ingresar al IDE de visual Studio, en el menú de archivo, seleccionamos la opción Abrir proyecto o solución, e importamos el archivo .sln que se encuentra en la ruta MyP_HttpServer\HttpServer
  3. Abrir la consola de Postman e importar el archivo de pruebas. El archivo de pruebas se encuentra en la ruta del proyecto \MyP_HttpServer\Contenido Pruebas Postman
  4. Para ejecutar las pruebas se debe:
  • Iniciar el servidor en IDE visual Studio.
  • Dirigirnos al modulo runner de la consola de Postman.
  • Seleccionar las pruebas ServidorHttp.
  • Recuerda que se puede modificar las iteraciones a realizar, por defecto el siempre lanza una iteración.
  • Y en la parte posterior de la pantalla seleccionar la Run ServidorHttp.

GLOSARIO

TERMINO DESCRIPCIÓN
Http Un servidor web brinda soporte para HTTP (Hypertext Transfer Protocol ó Protocolo de Transferencia de Hipertexto). Como su nombre lo indica, HTTP especifica cómo transferir hypertext (es decir, documentos web vinculados) entre dos computadoras. Un protocolo es un conjunto de reglas para la comunicación entre dos computadoras. HTTP es un protocolo textual, sin estado. (https://developer.mozilla.org/es/docs/Learn/Common_questions/Que_es_un_servidor_WEB)
Socket Un socket (enchufe), es un método para la comunicación entre un programa del cliente y un programa del servidor en una red. Un socket se define como el punto final en una conexión. (http://www.masadelante.com/faqs/socket)

BIBLIOGRAFIA

HTTP Server: Everything you need to know to Build a simple HTTP server from scratch, Skrew Everything, Mar 16, 2018

About

Servidor HTTP 1.1

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published