Verkkopalvelimen luominen Golang

Go: lla on erinomainen kieli yksinkertaisten mutta tehokkaiden verkkopalvelinten ja verkkopalvelujen luomiseen. Se tarjoaa sisäänrakennetun HTTP-paketin, joka sisältää apuohjelmia web-tai tiedostopalvelimen nopeaan luomiseen.

tämän opetusohjelman tavoitteena on luoda WWW-palvelin, joka voi hyväksyä GET-pyynnön ja palvella vastausta. Palvelimella palvelemme staattisia tiedostoja, jotka toimivat tiedostopalvelimina. Me sitten tehdä web-palvelin vastaa viestiin pyyntö tulee lomakkeen toimittamisesta, kuten yhteydenottolomake.,

without further ado, let ’ s explore how to build your first web server with Go.

Setup

tarvitset Go-version 1.11 tai korkeamman seurataksesi tätä opetussuunnitelmaa.

tässä osiossa luomme kaikki tarvittavat tiedostot ja luomme oikean tiedostorakenteen. Sen jälkeen tuomme pakettimme testataksemme, toimiiko setup. Älä huoli — asennus on hyvin yksinkertainen Golang Web server.

luo seuraavat tiedostot ja kansiot alla olevan rakenteen mukaan., Tiedosto server.go istuu juuri projektin, kuten ei static kansion, joka sisältää kaksi HTML-tiedostot: index.html ja form.html.

- server.go- static/- - index.html- - form.html

Nyt kirjoittaa koodia. Avaa server.go – tiedosto ja tuo tarvittavat paketit. Käytämme fmt tulostaa hyödyllisiä tietoja terminaalin ja log tulosta vakavia virheitä, jos web-palvelin kaatuu.

net/http on tärkein paketti., Se tarjoaa kaikki toiminnot HTTP-asiakkaan tai palvelimen toteuttamiseen, kuten Golang-verkkopalvelimen.

package mainimport ( "fmt" "log" "net/http")

Lopuksi, katsotaanpa lisätä yksinkertainen main() toiminto server.go tiedosto joka tulostaa viestin päätelaitteelle.

func main() { fmt.Printf("Starting server at port 8080\n")}

testaa asetukset, käynnistä fiktiivisessä palvelimen komennolla.

go run server.go

Jos olet seurannut mukana setup, sinun pitäisi nähdä seuraava lähtö oman terminaalin.,

Starting server at port 8080

Jos kaikki näyttää hyvä, seuraava askel on luoda web-palvelin.

NETTIPALVELIMEN käynnistäminen GET-reiteillä

tässä vaiheessa luomme web-palvelimen, joka todella palvelee port 8080: ssa ja voi vastata saapuviin GET-pyyntöihin.

katsotaanpa muokata koodia meidän main() toiminto aloittaa web-palvelimen portti 8080. ListenAndServe menetelmä on viemien http paketti tuodaan aikana, vaihe yksi. Tämän menetelmän avulla voimme aloittaa WWW-palvelimen ja määrittää portin kuunnella saapuvia pyyntöjä.,

huomaa, että porttiparametri on läpäistävä kaksoispisteen avulla prependoituna merkkijonona. Toinen parametri hyväksyy käsittelijän, joka määrittää palvelimen HTTP/2: lle. Tämä ei kuitenkaan ole tärkeää tämän opetusohjelman kannalta, joten voimme turvallisesti ohittaa nil toisena argumenttina.

 func main() { fmt.Printf("Starting server at port 8080\n") if err := http.ListenAndServe(":8080", nil); err != nil { log.Fatal(err) }}

tässä vaiheessa, että palvelin voi aloittaa, mutta se ei silti tiedä, miten käsitellä pyyntöjä. Meidän on siirrettävä käsittelijät palvelimelle, jotta se osaa vastata saapuviin pyyntöihin ja mitä pyyntöjä hyväksyä.,

HandleFunc – toiminnolla lisätään reittikäsittelijät www-palvelimelle. Ensimmäinen argumentti hyväksyy polun, jota sen pitää kuunnella /hello. Tässä, kerrot palvelimelle kuunnella mahdolliset saapuvat pyynnöt . Toinen argumentti hyväksyy funktion, jolla on liiketoimintalogiikka vastata pyyntöön oikein.

oletuksena tämä toiminto hyväksyy ResponseWriter lähettää vastauksen takaisin ja Request objekti, joka tarjoaa enemmän tietoa pyynnön itse., Voit esimerkiksi tutustua lähetetyistä otsikoista saatuihin tietoihin, joista voi olla hyötyä pyynnön todentamisessa.

Kuten voit nähdä, käsittelijä lähettää "Hello!” viesti, kun ohitamme tämä vastaus ResponseWriter.

now let ’ s try out this setup. Käynnistää web-palvelin, jossa go run server.go käymään . Jos palvelin vastaa "Hello!", voit jatkaa seuraavaan vaiheeseen, jossa voit oppia lisää perus turvallisuus teidän Golang web-palvelin reittejä.,

lisää perusturva reiteille

on sanomattakin selvää, että turvallisuus on tärkeää. Katsotaanpa tutkia joitakin perus strategioita parantaa turvallisuutta Go Web server.

ennen kuin teemme, meidän pitäisi ottaa hetki lisätä koodin luettavuutta. Katsotaanpa luoda helloHandler toiminto, joka omistaa kaikki logiikkaan liittyvät /hello pyyntö.

tämä käsittelijä käyttää Request – objektia tarkistaakseen, onko pyydetty polku oikea. Tämä on hyvin perusesimerkki siitä, miten Request – objektia voi käyttää.,

Jos polku on virheellinen, palvelin palauttaa StatusNotFound virhe käyttäjälle. Virheen kirjoittamiseen käyttäjälle voi käyttää http.Error – menetelmää. Huomaa, että StatusNotFound koodi vastaa 404-virhe. Kaikki tilakoodit löytyvät Golangin dokumentaatiosta.

seuraavaksi lisätään tarkistus pyynnön tyypin tarkistamiseksi. Jos menetelmä ei vastaa GET, palvelin palauttaa uuden virheen. Kun molemmat tarkastukset läpäisevät, palvelin palauttaa menestysvasteensa "Hello!".,

viimeinen asia, joka meidän täytyy tehdä, on muuttaa handleFunc toiminto meidän main() toiminto hyväksyä edellä helloHandler toiminto.

http.HandleFunc("/hello", helloHandler)

Alla on koko koodi server.go tiedosto.

seuraavaksi käynnistetään Go-verkkopalvelin go run server.go. Voit testata oman turvallisuuden lähettämällä POST-pyyntö käyttämällä työkalua, kuten Postinkantaja tai kiharaa.

Aloita staattinen WWW-palvelin

tässä vaiheessa luomme yksinkertaisen tiedostopalvelimen staattisten tiedostojen vastaanottamiseen., Tämä on hyvin yksinkertainen lisäys Web-palvelimeen.

varmista, Että meillä on sisältöä palvelemaan web-palvelin, katsotaanpa muuttaa index.html tiedosto sijaitsee static kansio. Pitääksesi asiat yksinkertaisina, lisää tiedostoon otsake, jossa lukee ”Static Website.”Jos haluat, voit lisätä enemmän tiedostoja tai muotoilutiedostoja, jotta web-palvelin näyttää hieman mukavammalta.

<html> <head> <title>Static Website</title> </head> <body> <h2>Static Website</h2> </body></html>

palvelee static kansion, sinun täytyy lisätä kaksi riviä koodia server.go., Koodin ensimmäinen rivi luo tiedostopalvelinobjektin käyttäen FileServer – funktiota. Tämä funktio hyväksyy polun – tyypissä. Siksi meidän täytyy muuntaa string polku "./static” to http.Dir polku tyyppi.

Älä unohda määritellä Handle reitti, joka hyväksyy polku ja fileserver. Tämä toiminto toimii samalla tavalla kuin HandleFunc funktio, joitakin pieniä eroja. Katso lisätietoja FileServer objektista dokumentaatiosta.,

on aika kokeilla koodia. Käynnistä palvelin go run server.go käymään . Sinun pitäisi nähdä ”Static Website” otsikko.

Hyväksy lomakkeen lähetys POST-pyyntö

Lopuksi, web-palvelin on vastata lomakkeen toimittamisesta.

katsotaanpa lisätä joitakin sisältöä form.html tiedosto static kansio. Huomaa, että lomakkeen toiminta on lähettänyt /form. Tämä tarkoittaa, että lomakkeen postipyyntö lähetetään ., Lomakkeen itse pyytää input kaksi muuttujaa: name ja address.

seuraava askel on luoda handler hyväksyä /form pyyntö. form.html tiedosto on jo toiminut kautta FileServer ja pääsee

First, the function has to call ParseForm() jäsentää raaka-kysely ja päivitys r.PostForm ja r.Form. Tämä antaa meille mahdollisuuden käyttää name ja address arvojen kautta r.FormValue menetelmä.,

lopussa toiminto, kirjoitamme molemmat arvot ResponseWriter käyttäen fmt.Fprintf.

Älä unohda lisätä uusi lomakekäsittelijä reitti main() toiminto.

http.HandleFunc("/form", formHandler)

Nyt, koko koodi näyttää tältä.

Yrittää lomake handler

– Voimme testata lomakkeen käynnistämällä palvelin go run server.go. Kun palvelin käynnistyy, käy . Sinun pitäisi nähdä kaksi syöttökenttää ja Lähetä-painike.,

Kun olet täyttänyt lomakkeen, paina submit – painiketta. Palvelimen pitäisi käsitellä POST-pyynnön ja näyttää tulos vastaus-sivulle, kuten alla vastaus.

Jos näet tuloksen, joka on yli, olet onnistuneesti luonut ensimmäisen Golang web-ja tiedostopalvelin. Onnitteluni!

Jos haluat tutustua Golang web-palvelimet edelleen, Golang HTTP-paketin dokumentaatio on täynnä hyviä esimerkkejä., Tämä opetusohjelma kirjoittaminen web apps Go on toinen suuri resurssi, joka kattaa useimmat perusasiat.

LogRocket: Täysi näkyvyys osaksi web-sovellukset

LogRocket on frontend sovellus seuranta ratkaisu, jonka avulla voit toistaa ongelmia, jos ne tapahtui omassa selain. Sen sijaan arvailla, miksi virheitä tapahtuu, tai pyytää käyttäjiä kuvakaappauksia ja Loki kaatopaikkoja, LogRocket voit toistaa istunnon nopeasti ymmärtää, mikä meni pieleen., Se toimii täydellisesti tahansa sovelluksen, riippumatta siitä, kehys, ja on plugins kirjautua tiedostojen yhteydessä, Redux, Vuex, ja @ngrx/store.

lisäksi hakkuut Redux toimia ja valtion, LogRocket kirjaa konsoli lokit, JavaScript virheitä, stacktraces, verkko pyynnöt/vastaukset otsikot + elinten, selain metatiedot, ja custom lokit. Se myös välineitä DOM tallentaa HTML-ja CSS-sivulla, uudestaan pixel-perfect videoita jopa kaikkein monimutkaisia yhden sivun apps.

kokeile ilmaiseksi.

Share

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *