HTTP协议-响应头
HTTP协议响应头用于向客户端传递一些额外的信息,以控制或说明响应的方式、内容和缓存等。
HTTP协议的响应头是在HTTP协议中用于描述服务器响应的元数据,它是服务器在响应客户端请求时发送给客户端的一部分响应信息。
响应头包含了服务器的相关配置和响应内容的描述,具有以下几个主要作用:
状态码和状态消息 | 表示服务器对请求的处理结果的状态码和对应的文本描述,如200表示成功,404表示未找到资源等。 |
协议版本 | 指定了服务器使用的HTTP协议版本。 |
内容类型(Content-Type) | 指定了服务器返回的响应内容的类型。 |
内容长度(Content-Length) | 指定了响应内容的长度。 |
重定向地址(Location) | 用于重定向响应,客户端可以根据该字段的值重新发送请求。 |
实体标记(ETag) | 用于实体的缓存控制,客户端可以通过该标记判断资源是否改变。 |
设置Cookie(Set-Cookie) | 用于在响应中设置Cookie,服务器可以通过该字段在客户端保存会话信息。 |
获取响应头
private async void Form1_Load(object sender, EventArgs e)
{
//1组织发请求对象
HttpRequestMessage req = new HttpRequestMessage() {
Method =HttpMethod.Get, //设置不同请求类型 options请求 head请求
RequestUri=new Uri("http://127.0.0.1:3000/Shop")
};
//2 发送请求
HttpResponseMessage res = await new HttpClient().SendAsync(req);
string data = await res.Content.ReadAsStringAsync();
Console.WriteLine(data);
MessageBox.Show(res.StatusCode + "");//状态码
// 获取响应的响应头
HttpResponseMessage res1 = await new HttpClient().GetAsync("http://192.168.113.74:3000/Students");
// 获取响应的响应头
HttpResponseHeaders headers = res1.Headers;
foreach (var item in headers)
{
//item.Key 响应头键
//item.Value 响应的值是数组类型
Console.Write("响应头的属性" + item.Key );
foreach (var item1 in item.Value)
{
await Console.Out.WriteAsync( "响应头的属性值:"+item1+"\n");
}
}
}
响应体
响应体(ResponseBody)是在HTTP协议中用于传输服务器响应给客户端的数据的部分。它是HTTP响应中的一个组成部分,包含了服务器返回的实际响应内容。响应体通常出现在服务器返回成功的响应中,如200 OK。响应体可以包含各种类型的数据,如HTML页面、JSON数据、文件等。具体的数据类型由响应头中的Content-Type字段来指定。
常见的响应体格式有以下几种:
文本数据(text/plain) | 包含了纯文本数据。 |
HTML数据(text/html) | 包含了HTML格式的文档 |
JSON数据(application/json) | 包含了以JSON格式编码的数据。 |
文件数据(application/octet-stream) | 包含了二进制文件的数据。 |