go语言从0实现net/http标准库(四):multipart表单
前文对Body进行了设置,不论客户端是使用Content-Type还是chunk编码的方式,服务端都能够正确的解析。本文将在Body功能的基础上,着重完成form表单中的multipart表单的解析。个人认为是整个框架最难实现部分,不过与chunkReader实现的思路类似,可以借鉴实现。
华中科技大学本硕, 热爱编程, 擅长C++、Go开发
前文对Body进行了设置,不论客户端是使用Content-Type还是chunk编码的方式,服务端都能够正确的解析。本文将在Body功能的基础上,着重完成form表单中的multipart表单的解析。个人认为是整个框架最难实现部分,不过与chunkReader实现的思路类似,可以借鉴实现。
前文进行了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标准库的实现过程。