Skip to content

Latest commit

 

History

History
65 lines (47 loc) · 2.69 KB

File metadata and controls

65 lines (47 loc) · 2.69 KB

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:

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