go语言从0实现net/http标准库(六):response

以框架目前的完成度来说,handler中还需要我们手动的构建http响应报文,不仅麻烦而且容易出错。因此我们今天就要完成对response的封装,提供更易操作的api以及完成对响应报文的自动构建。本文难度较高,是该系列的最后一个难点。

阅读全文

go语言从0实现net/http标准库(四):multipart表单

前文对Body进行了设置,不论客户端是使用Content-Type还是chunk编码的方式,服务端都能够正确的解析。本文将在Body功能的基础上,着重完成form表单中的multipart表单的解析。个人认为是整个框架最难实现部分,不过与chunkReader实现的思路类似,可以借鉴实现。

阅读全文

go语言从0实现net/http标准库(三):Request设置Body

前文进行了Request首部字段的解析,已经完整的支持了GET请求。对于POST请求来说,其传送的表单数据在HTTP请求的报文主体body部分,服务端需要进一步IO操作才能读出,为了提高性能我们将POST表单的解析权交给用户,为此我们给Request结构体封装一个Body字段,作为IO的接口。本文需要多加理解,难度较高。

阅读全文

go语言从0实现net/http标准库(序):概述

go语言提供了net/http标准库,帮助开发者轻松的开发web应用,不论是了解http协议还是深入理解go语言的设计理念,阅读http标准库都极为重要。但如果新手一头扎进源码的阅读,总因为抓不住主线脉络或者不懂某个步骤的设计原因导致雾水重重,本系列将从tcp基础上通过从零实现的方式带你剖析net/http标准库的实现过程。

阅读全文