第 3 章 使用 Go 语言实现 HTTP/1.0 客户端
[日] 涩川喜规
第 1 章介绍了 HTTP 的如下 4 个基本元素,以及发送和接收这些基本元素的 curl 命令的写法。
方法和路径
首部
主体
状态码
本章我们来学习一下如何使用 Go 语言来编写发送和接收上述内容的代码。
![](https://static001.geekbang.org/files/resource/ebook/100009/image00381.jpeg)
3.1 为何使用 Go 语言
Google 公司在 2007 年发布了 Go 语言。近年来,Go 语言得到广泛应用。Go 语言的优点体现在以下几个方面。
拥有轻量级语言规范和丰富的标准库
编译速度快,可与动态脚本语言的运行速度匹敌,会进行类型检查
运行速度快,易于实现多核性能,节省内存
易于交叉编译
输出的是单一的二进制文件,易于发布
另外,本书之所以采用 Go 语言来实现 HTTP 代码,也是因为它是一门优秀的教学语言,具体体现在以下几个方面。
语言规范少于其他编程语言,使用其他编程语言的用户也能轻松理解 Go 语言的运行方式,因此 Go 作为描述语言也非常优秀
Go 语言是编译语言,能够检查语法结构和类型,易于发现输入错误
仅使用标准库即可创建访问 HTTP 的程序
实际上,Go 语言也用作各种 Web 服务的 CLI 客户端的实现语言
单看每个特征,我们也能发现 Go 语言相比其他编程语言的优秀之处。例如,Go 语言的运行速度比 C 和 C++ 快,生成的二进制文件也比较小。不过,交叉编译环境搭建起来比较费事,而且在编译和发布时,要把需要用到的库都集中起来创建编译环境,这也很麻烦。拥有包管理器的 Python、Ruby 和 Node.js 等脚本语言无须编译,但不会输出单一的二进制文件,运行速度比 Go 语言慢一点儿,内存消耗量方面也比 Go 语言大一点儿。我们在学生时代都参加过模拟考试,应该知道用自己擅长的学科弥补不擅长的学科是一件很难的事情,只有所有学科都取得好成绩,才能提高偏差值 。Go 语言就是一种能够完美解决各种问题的语言。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
本文介绍了使用 Go 语言实现 HTTP/1.0 客户端的方法。首先强调了选择 Go 语言的优点,如轻量级语言规范、丰富的标准库、编译速度快、易于交叉编译等。接着详细介绍了 Go 语言的 API 结构,包括功能有限但易于使用的 API、能使用 Cookie 的、可稍加控制的 API以及原生的、可访问所有功能的 API。文章还列举了浏览器发送和接收信息的模式,并对比了使用 Go 语言和其他编程语言的区别。重点介绍了使用 Go 语言实现几个典型的模式,包括发送 GET 方法、获取带查询的信息、使用 HEAD 获取首部、使用 x-www-form-urlencoded 发送表单等。通过代码清单和对应的 curl 命令的对比,读者可以清晰地了解如何使用 Go 语言实现这些功能。整体而言,本文通过简洁清晰的语言和实际的代码示例,帮助读者快速了解了使用 Go 语言实现 HTTP/1.0 客户端的方法和技术特点。文章内容涵盖了发送 x-www-form-urlencoded 形式的表单、使用 POST 方法发送任意主体、使用 multipart/form-data 形式发送文件以及 Cookie 的发送和接收等内容,为读者提供了全面的技术指导。文章还介绍了如何使用代理和访问文件系统,以及发送任意方法和首部,为读者提供了更加全面的技术知识。文章内容丰富,适合对 Go 语言和 HTTP/1.0 客户端实现感兴趣的读者阅读学习。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《详解 HTTP:协议基础与 Go 语言实现》
《详解 HTTP:协议基础与 Go 语言实现》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论