在使用 go "net/http" 创建一个 http.Request 去上传文件到 minio 的过程中, 发现了几个疑问点:
1
aladdinding 2023-05-08 09:58:14 +08:00
因为 http header 可以重复多次 比如 cookie
|
2
baiyi 2023-05-08 10:08:22 +08:00 2
1. 因为 http header 就是设计成了这样的结构,值可以是数组。但并不代表所有 header 的值都必须支持数组配置,有些 header key 设计出来就只有一个字符串值
2. 基于上述设计理念,go header 结构体的辅助方法就很好理解了,Add 的场景就是为了给数组型 value 使用的,Set 是给字符串型 value 使用的,Get 也是 3. 在实际使用过程中,需要使用者明白当前你想使用的 header key 支持什么类型的 value ,假如是数组,那么就遍历,假如是字符串,那么直接用辅助方法 Get 就好 |
3
darksword21 2023-05-08 10:51:37 +08:00
Add:添加新 header
Set:设置现有 header 的 value |
4
hzzhzzdogee 2023-05-08 23:12:55 +08:00
Add adds the key, value pair to the header. It appends to any existing values associated with key. Set sets the header entries associated with key to the single element value. It replaces any existing values associated with key.
|
5
wwvvance OP @hzzhzzdogee 里面的注释我也读过, 应该就是我对 http header 设计的知识不足, 要查缺补漏.
|