Golang实现HTTP编程请求和响应
短信预约 -IT技能 免费直播动态提醒
请求:
HTTP 请求报文由请求行、请求头部、空行、请求包体4个部分组成,如下图所示:
请求行:
请求行由方法字段、URL 字段 和HTTP 协议版本字段 3个部分组成,他们之间使用空格隔开。常用的 HTTP 请求方法有 GET、POST。
GET:
- 当客户端要从服务器中读取某个资源时,使用GET 方法。GET 方法要求服务器将URL 定位的资源放在响应报文的数据部分,回送给客户端,即向服务器请求某个资源。
- 使用GET方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制,因此GET方法不适合用于上传数据。
- 通过GET方法来获取网页时,参数会显示在浏览器地址栏上,因此保密性很差。
POST:
- 当客户端给服务器提供信息较多时可以使用POST 方法,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理。
- GET 一般用于获取/查询资源信息,POST 会附带用户数据,一般用于更新资源信息。POST 方法将请求参数封装在HTTP 请求数据中,而且长度没有限制,因为POST携带的数据,在HTTP的请求正文中,以名称/值的形式出现,可以传输大量数据。
请求头:
请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:
请求头 | 含义 |
---|---|
User-Agent | 请求的浏览器类型 |
Accept | 客户端可识别的响应内容类型列表,星号“ * ”用于按范围将类型分组,用“ / ”指示可接受全部类型,用“ type
http.HandleFunc("/itzhuzhu", myHandlerFunc)
http.ListenAndServe("127.0.0.1:8000", nil)
}
func myHandlerFunc(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("ResponseWriter Test"))
fmt.Println("Header:", r.Header)
fmt.Println("URL:", r.URL)
fmt.Println("Method:", r.Method)
fmt.Println("Host:", r.Host)
fmt.Println("RemoteAddr:", r.RemoteAddr)
fmt.Println("Body:", r.Body)
}
客户端模拟浏览器发送请求:
服务器发送的响应包体被保存在Body中。可以使用它提供的Read方法来获取数据内容。保存至切片缓冲区中,拼接成一个完整的字符串来查看。
到此这篇关于Golang实现HTTP编程请求和响应的文章就介绍到这了,更多相关Golang HTTP编程请求和响应内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网! 免责声明: ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。 ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341 Golang实现HTTP编程请求和响应下载Word文档到电脑,方便收藏和打印~ 下载Word文档
|