美文网首页
HTTP的header消息头

HTTP的header消息头

作者: 后厂村村长 | 来源:发表于2021-09-09 14:52 被阅读0次

协议格式

1、请求头:报文主要包含四个部分:

  • 请求行(例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif)
  • 请求头(例如Host: abc.xxx.com;Connection: keep-alive
  • 空行
  • 消息数据实体(正文)

注:在HTTP/1.1协议中,所有的请求头,除Host外,都是可选的。
HTTP消息头支持自定义, 自定义的专用消息头一般会添加X-前缀。
请求行和标题必须以<CR><LF>作为结尾。空行内必须只有<CR><LF>而无其他空格。

根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT方法。

2、响应头:报文也是四个部分:

  • 状态行(例如HTTP/1.1 200 OK,表示从/images目录下请求logo.gif)
  • 响应头(例如Date: Thu, 09 Sep…;Content-Type: application/json; charset=utf-8
  • 空行
  • 响应正文

状态行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF

HTTP-Version表示服务器HTTP协议的版本;
Status-Code表示服务器发回的响应状态代码;
Reason-Phrase表示状态代码的文本描述。

示例

请求(Request)示例:

POST /get/your/answer HTTP/1.1
Host: abc.xxx.com
Connection: keep-alive
Content-Length: 123
Accept: application/json, text/plain, */*
Origin: xxxxx(一个有效域名)
User-Agent: Mozilla/5.0 (Linux; Android 5.1.1;……) Chrome/39.0.0.0 Mobile
Content-Type: application/x-www-form-urlencoded
Referer: xxxxx(一个有效的URL)
Accept-Language: zh-CN,en-US;q=0.8
Cookie: cookid=whoami_hahaha
X-Requested-With: (自定义消息头,一般会添加 X- 前缀)

msg=haha&version=1.1.10&type=1234(注意,POST请求的数据在这里)

另,GET请求header头,数据参数不会出现在消息实体中,而是在请求行中,示例:

GET /your/intf?type=1&show=2 HTTP/1.1(注意,GET请求的数据在这里)
Host: xxx
Connection: keep-alive
……

应答(Response)示例:

HTTP/1.1 200 OK
Date: Thu, 09 Sep 2021 01:11:16 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Server: Apache
tracecode: 12345678
Connection: close

{"result":{"errcode":0,"message":"你瞅啥","data":["abc"]}}
或者
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
……

HTTP版本升级带来的变化

1、在HTTP 0.9和1.0中,TCP连接在每一次请求/回应对之后关闭。
在HTTP 1.1中,引入了保持连线(keep-alive)的机制,一个连接可以重复在多个请求/回应使用。持续连线的方式可以大大减少等待时间,因为在发出第一个请求后,双方不需要重新运行TCP握手程序。

2、HTTP 1.1还改进了HTTP 1.0的带宽。
例如,HTTP 1.1引入了分块传输编码,以允许传递内容可以在持续连在线被流传输而不必使用到缓冲器。
HTTP管道允许客户端在收到每个回应之前发送多个请求,进一步减少用户感受到的滞后时间。协议的另一个补充是字节服务,允许客户端请求资源的某一部分,服务器仅回应某资源的指明部分。

3、在HTTP1.0,单一TCP连接内仅执行一个“客户端发送请求—服务器发送应答”周期,之后释放TCP连接。
在HTTP1.1优化支持持续活跃连接:客户端连续多次发送请求、接收应答;批量多请求时,同一TCP连接在活跃(Keep-Live)间期内复用,避免重复TCP初始握手活动,减少网络负荷和响应周期。
此外,支持应答到达前继续发送请求(通常是两个),称为“流线化”(stream)。

HTTP状态码

HTTP 状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

1xx:指示信息--表示请求已接收,继续处理。
2xx:成功--表示请求已被成功接收、理解、接受。
3xx:重定向--要完成请求必须进行更进一步的操作。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务器端错误--服务器未能实现合法的请求。

常见状态代码、状态描述的说明如下:
200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
401 Unauthorized:请求未经授权,须和WWW-Authenticate报头域一起使用。
403 Forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
500 Internal Server Error:服务器发生不可预期的错误。
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

相关文章

  • HTTP的header消息头

    协议格式 1、请求头:报文主要包含四个部分: 请求行(例如GET /images/logo.gif HTTP/1....

  • http 消息

    HTTP消息又称为HTTP头(HTTP header),由四部分组成,分别是请求头、响应头、普通头、实体头。 1....

  • HTTP Header简介

    HTTP Header 协议头的字段(Header),请求(request)或响应(response)。协议头的字...

  • Python爬虫之Requests和Response

    http header 消息通常被分为4个部分:general header即头部, request header...

  • http header http常用请求头

    HTTP请求header 1.常用Requests部分2.常用Responses 部分3.不常用部分(可以不看)|...

  • 接口测试-header头部详解

    一、什么是header header:标头 (header) 是服务器以HTTP[https://link.zhi...

  • 网络传输 http tcp

    HTTP请求头信息 Connection 请求头信息 Connection Connection 头(header...

  • HTTP消息头

    1. 关于HTTP消息头 HTTP消息头是在,客户端请求(Request)或服务器响应(Response)时传递的...

  • HTTP 消息头

    Connection 这个消息头用于告诉通信的另一端,在完成 HTTP 传输后是关闭 TCP 连接,还是保持连接开...

  • HTTP消息头

    .**常用消息头** Connection。这个消息头用于告诉通信的另一端.在完成HTTP传输后是关闭TCP连接,...

网友评论

      本文标题:HTTP的header消息头

      本文链接:https://www.haomeiwen.com/subject/huuiwltx.html