# 3.2 Armando un servidor web sencillo Hablamos de que las aplicaciones web se basan en el protocolo HTTP, y Go permite la plena capacidad para HTTP en el paquete `net/http`, es muy fácil instalar un servidor web mediante el uso de este paquete . ## Uso del paquete http para configurar un servidor web ``` package main import ( "fmt" "net/http" "strings" "log" ) func sayhelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() //analizar argumentos , tiene que llamar a esto por su cuenta fmt.Println(r.Form) //imprime información en el form en el lado del servidor fmt.Println("path", r.URL.Path) fmt.Println("scheme", r.URL.Scheme) fmt.Println(r.Form["url_long"]) for k, v := range r.Form { fmt.Println("key:", k) fmt.Println("val:", strings.Join(v, "")) } fmt.Fprintf(w, "Hello astaxie!") // enviar datos al lado del cliente } func main() { http.HandleFunc("/", sayhelloName) // define la ruta err := http.ListenAndServe(":9090", nil) // establece el puerto de escucha if err != nil { log.Fatal("ListenAndServe: ", err) } } ``` Después de ejecutar el código anterior, el host Local empieza a escuchar en el puerto 9090. Abre tu navegador y visita `http://localhost:9090`, se puede ver que `Hello astaxie` está en su pantalla . Vamos a intentar otra dirección con argumentos: `http://localhost:9090/?url_long=111&url_long=222` Ahora veamos lo que sucedió en los dos lados de cliente y servidor. Usted debe ver la siguiente información en su lado del servidor: ![](images/3.2.goweb.png?raw=true) Figura 3.8 Información del servidor por pantalla Como se puede ver, sólo tenemos que llamar a dos funciones para crear un servidor web simple. Si has trabajado con PHP, es probable que te preguntes si necesitamos algo como Nginx o Apache, la respuesta es que no los necesitamos porque GO escucha el puerto TCP por sí mismo, y la función `sayhelloName` es la función lógica que funciona como controlador en PHP . Si has trabajado con Python, debes estar familiarizado con tornado, y el ejemplo anterior es muy similar a tornado. Si has trabajado con Ruby, usted puede notar que es como script/server en ROR. Utilizamos dos funciones simples para configurar un servidor web simple en esta sección, y este servidor sencillo ya ha tenido capacidad para alta concurrencia. Vamos a hablar acerca de cómo usar esta característica en dos secciones siguientes . ## Enlaces - [Indice](preface.md) - Sección anterior: [Principios para el trabajo en la Web](03.1.md) - Siguiente sección: [Como trabaja Go con la web](03.3.md)