想写个web服务器,用Go语言实现,需要有哪些前提知识

Python023

想写个web服务器,用Go语言实现,需要有哪些前提知识,第1张

以我就说只会 JavaScript 啊 Java EE 啊 PHP 的就不要冒充程序员了……

先看看 Go 的 net 包和 net/http 包。基于 net 包里相对低级的接口,用 TCP 写基本的 C/S 通信程序。如果需要权威参考书,Unix Network Programming 是唯一正确的选择。另有 Beej‘s Guide to Network Programming 方便入门。

之后去看 rfc1945 实现基本的 HTTP/1.0。再之后开始实现 HTTP/1.1 的各种细节的时候才需要 http 权威指南吧。

适合。框架足够成熟了 A Survey of 5 Go Web Frameworks

小型项目你甚至不用框架,用net/http http - The Go Programming Language

常用库也成熟了 Top - Go Search

golang的web后端即使不concurrent也比php,ruby,python快很多很多

golang里用concurrent真的非常方便,非常非常快,超大web项目golang scale成本低

如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache

对于文件改动重新编译其实并不是大问题,看pilu/fresh · GitHub,其实你自己写shell脚本(也可以直接用go写,因为它本身就是系统语言)监控文件系统改动然后自动重新build,即使是C/C++的项目这也不是大问题,人们不用C/C++写web是因为它们不是写web app的最佳选择

golang写的代码编译通过后,要比scripting language鲁棒,因为go compiler强制一些最佳实践