go语言从0实现net/http标准库(三):Request设置Body
前文进行了Request首部字段的解析,已经完整的支持了GET请求。对于POST请求来说,其传送的表单数据在HTTP请求的报文主体body部分,服务端需要进一步IO操作才能读出,为了提高性能我们将POST表单的解析权交给用户,为此我们给Request结构体封装一个Body字段,作为IO的接口。本文需要多加理解,难度较高。
华中科技大学本硕, 热爱编程, 擅长C++、Go开发
前文进行了Request首部字段的解析,已经完整的支持了GET请求。对于POST请求来说,其传送的表单数据在HTTP请求的报文主体body部分,服务端需要进一步IO操作才能读出,为了提高性能我们将POST表单的解析权交给用户,为此我们给Request结构体封装一个Body字段,作为IO的接口。本文需要多加理解,难度较高。
本文将正式开始HTTP协议的解析,主要完成Request结构体的属性组成,HTTP请求报文首部字段以及请求行的解析,难度适中。
本文将为httpd框架搭建具体的骨干,划分不同的模块,为后续的开发捋清脉络。本文暂不涉及http协议的解析过程,难度较低。
go语言提供了net/http标准库,帮助开发者轻松的开发web应用,不论是了解http协议还是深入理解go语言的设计理念,阅读http标准库都极为重要。但如果新手一头扎进源码的阅读,总因为抓不住主线脉络或者不懂某个步骤的设计原因导致雾水重重,本系列将从tcp基础上通过从零实现的方式带你剖析net/http标准库的实现过程。