官术网_书友最值得收藏!

Go HTTP web server

A web server's primary purpose is to accept HTTP request messages, process the requests, and respond with HTTP response messages. The web server that is built into the Go net/http package is a wonderful example of a bare bones web server. The web server listens for and accepts new TCP requests, launches a new Go routine for each request, and then runs the developer-specified handler for the request in the new Go routine. The web server implementation watches for any application-level panics that occur within the code and then sends the response generated by the handler code back to the client that initiated the request.

This works due to the lightweight thread scheduling that is done within the Go runtime environment. Go routines are much cheaper to initialize and run than traditional threads and subprocesses, and are designed so that thousands of Go routines can be running at the same time. The following is a high-level diagram of how a request is processed within the Go web server:

As a recap, the Go web server will spawn and execute each handler function within a Go routine for every single request that the web server receives. The Go web server will handle the network's listen and accept life cycles, and has a Transport Layer Security (TLS) built-in if requested by the developer.

主站蜘蛛池模板: 连城县| 常山县| 扎兰屯市| 德化县| 华蓥市| 长汀县| 长岛县| 赤峰市| 通许县| 类乌齐县| 工布江达县| 赤城县| 济南市| 景德镇市| 普兰店市| 武邑县| 长海县| 本溪市| 永平县| 油尖旺区| 柯坪县| 友谊县| 金门县| 关岭| 东宁县| 旬阳县| 措美县| 高陵县| 安阳县| 随州市| 林口县| 桂阳县| 河北省| 郑州市| 永修县| 武邑县| 漳平市| 通化县| 会泽县| 酉阳| 永济市|