网络协议 - ABNF表示的http协议

本文详细介绍了HTTP请求和响应的ABNF(抽象语法记号)表示,包括start-line、header-field、message-body等关键元素,并通过示例展示了HTTP请求和响应的具体格式。ABNF用于定义语法结构,帮助理解HTTP协议的结构。
摘要由CSDN通过智能技术生成

ABNF

使用ABNF描述http的请求和响应,需要几个要素:

  1. start-line
  2. *
  3. header-filed
  4. CRLF
  5. SP
  6. message-body
  7. []
  8. OWS
1. start-line: request-line / status-line
2. * 代表一个或者多个
3. header-field 代表请求头/响应头字段
4. CRLF 代表换行/回车 在mac系统中,CR代表换行,linux系统中LF代表换行,在windows中CRLF代表换行
5. SP 代表空格
6. message-body 代表请求/响应内容
7. [] 代表可选,即可有可无
8. OWS 代表空格或者制表符

表现http的ABNF

HTTP-message = start-line*(head-field CRLF)CRLF[message-body]
* start-line = request-line/status-line
	* request-line = method SP request-target SP HTTP-version CRLF
	* status-line = HTTP-version SP status-code SP reason-phrase CRLF
* header-field = field-name:OWS field-value OWS
	* OWS = (SP / HTAB)
	* field-name = token
	* field-value = *(field-content / obs-fold)
* message-body = *OCTET

// 
OCTET 代表二进制数据

http request

// http request使用ABNF的表示方式
request-line *(head-field CRLF)CRLF [message-body]

// 示例
GET www.baidu.com HTTP/1.1
Remote Address: 182.61.200.7:443
Referrer Policy: unsafe-url

http response

// http response使用ABNF的表示形式
status-line *(head-field CRLF)CRLF [message-body]

// 示例
HTTP/1.1 400 Bad Request
Server: openresty/1.19.3.1
Date: Mon, 29 Mar 2021 15:09:39 GMT
Content-Type: text/html
Content-Length: 163
Connection: close

<html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>openresty/1.19.3.1</center>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值