BETA

[Go] Webサーバ HelloWorld

投稿日:2020-08-12
最終更新:2020-08-12

[Go] Webサーバ HelloWorld

経緯

みんなGoを使える。使えないの私だけ。。。な気分になってきた。
本気で新言語に入門したのはC以来であるが、しっかり学習していこうと思う。

  • 直近のテーマ
    • 1:Goに慣れる。
    • 2:Go×Networkに詳しくなる。

  • Goに慣れることについて、本当の基本部分(if,for,map)はAtcoderの練習により習得できた。
  • 一方Atcoderで使わないchannelだとか、ライブラリとか、つまりはアルゴリズム以外の部分はさっぱりである。そういう部分を補完していきたい。

本題

  • GoでWebサーバを作ってみる。
    とりあえずはエラー処理も何もない、必要最小限のコードを書いてみた:
    • localhostに立てて、アクセスしたら<h1>の大きさで「hello world」が表示される。


package main  
import (  
    "io"  
    "net/http"  
)  

func main() {  
    http.HandleFunc("/", アクセス時に呼ばれる関数)   // アクセス時に呼ばれる関数を指定する。  
    http.ListenAndServe("", nil)              //待ち受けを開始する。  
}  

func アクセス時に呼ばれる関数(レスポンス書き出し先 http.ResponseWriter, _ *http.Request) {  
    io.WriteString(レスポンス書き出し先, `<h1>hello world</h1>`)  
}  

解説

main()

  • main()では、まず待ち受けを開始する前に「リクエストが来たらどんなことをすればよいか」をhttp.HandleFuncで設定している。
    • 上記例では、リクエストが来たら「アクセス時に呼ばれる関数」という名前の関数が呼ばれる。
    • なおGoでは関数、変数に日本語が使用可能。
  • アクセス時に呼ばれる関数を指定したあと、http.ListenAndServe("", nil)で待ち受けを開始する。
    • 第一引数に":8080"などすればそのポートで待ち受ける。

アクセス時に呼ばれる関数()

  • アクセス時に呼ばれる関数()では、レスポンス書き出し先に「<h1>hello world</h1>」を書き出しているだけ。
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

さびあさぎ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう