Go로 웹 서버 만들기 3단계

5010 단어 Go

Go에서 로컬 서버 만들기


Go는 비교적 적은 코드로 웹 서버를 구축할 수 있는 표준 넷/http 패키지를 제공합니다.그림처럼 로컬 단순 CSS가 있는 정적 내용을 표시하고 싶습니다.

1. 디렉터리 만들기


아래의 구성으로 목록을 작성합니다.
$HOME/go_tutorial
- main.go
- static/
- - index.html
- - styles/
- - - style.css
홈 디렉터리 아래에 "go_tutorial"디렉터리를 만들고 메인 코드main을 씁니다.go와 내용을 포함하는static 디렉터리를 설정합니다.
$ mkdir go_tutorial
$ cd go_tutorial
$ touch main.go
$ mkdir -p static/stylesheets
$ touch static/index.html static/stylesheets/styles.css

2.main.go와 html css 준비


main.go
package main

import (
    "log"
    "net/http"
)

func main() {
    //ディレクトリを指定する
    fs := http.FileServer(http.Dir("static"))
    //ルーティング設定。"/"というアクセスがきたらstaticディレクトリのコンテンツを表示させる
    http.Handle("/", fs)

    log.Println("Listening...")
    // 3000ポートでサーバーを立ち上げる
    http.ListenAndServe(":3000", nil)
}

~/static/index.html
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>A static page</title>
  <link rel="stylesheet" href="/stylesheets/styles.css">
</head>
<body>
  <h1>Hellooooooooooooo</h1>
</body>
</html>
~/static/stylesheets/styles.css
body {color: #c0392b}

3. 서버 시작


코드를 눌렀으면main.이동
$ go run main.go
여기에서 http://localhost:3000/
항목에서 사용할 수 있는 모든 패밀리를 봅니다.

ServeMux


Go의 http 패키지 컨텍스트에서 "Servemux"라는 용어가 자주 나타납니다.
· ServeMux는 HTTP에서 요청한 라우터입니다.URL 모드와 일치하는 프로세서를 호출합니다.
・Mux는 multiplexor(다중 장치로 직역)의 줄임말로 각종 모드의 URL 요청에 대응하는 처리 프로그램에 분배된다.
/프로세서가 HTTP 응답 제목과 바디를 반환합니다.
· DefalutServeMux라는 용어도 자주 등장하는데 이것은 HTTP 패키지를 사용할 때 먼저 정의된 Servemux이다.

참고 자료


Creating simple webserver with golang
https://tutorialedge.net/golang/creating-simple-web-server-with-golang/
Serving static sites with Go
https://www.alexedwards.net/blog/serving-static-sites-with-go
Understanding Go Standard Http Libraries : ServeMux, Handler, Handle and HandleFunc
https://rickyanto.com/understanding-go-standard-http-libraries-servemux-handler-handle-and-handlefunc/
A Recap of Request Handling in Go
https://www.alexedwards.net/blog/a-recap-of-request-handling

좋은 웹페이지 즐겨찾기