Golang 精简直观的设计,让Web 开发和写 print ”Hello World”毫无二致。同时也让我有机会一窥 HTTP Server 的设计与实现。至此,以前Tomcat, Apache 等web 容器给我的神秘感一扫而光。
1. 基础知识
HTTP Server的目的即是实现HTTP Protocol, 下面我们简要介绍一下HTTP Protocol。
HTTP报文由一行行的简单字符串组成。HTTP报文都是纯文本,是Web信息传递的载体。下面由一个简单场景来表示HTTP报文格式。
第一步:用户输入信息 username=harry&password=1234,浏览器向http://localhost:8080/login发送POST 请求,发送报文为
POST /login HTTP/1.1
HOST: localhost:8080/login
Accept: text/html
username=yasun&password=1234
第二步:服务器返回登录后个人博客信息的页面信息,发送Response 报文为
第三步:用户点击Blog 1, 浏览器发送Get 请求
2. 设计思路
!#Never too late to do it now#!