首页 > Web开发 > 详细

HTTP协议

时间:2020-02-26 09:36:36      阅读:85      评论:0      收藏:0      [点我收藏+]

HTTP协议

一、定义

HTTP协议(超文本传输协议):一种无状态的、应用层的、以请求/应答方式运行的协议,它使用可扩展语义和自然描述消息格式,
与基于网络的超文本信息系统灵活的互动。

二、HTTP消息的格式

(一)、语义话的表达格式

  • 请求格式:
    • 请求方法:GET/POST/PATCH/PUT/DELETE
    • 版本号
    • path路径

      以上三个组成请求行(request-line)

    • HOST:域名
  • 响应格式:
    • 响应行(response-line)
      • HTTP请求
      • 状态码
    • 响应体

      request-line和response-line共同组成start-line

(二)、基于ABNF的严谨格式

ABNF:扩充巴科斯-瑙尔范式

  • 操作符号:
    • 空白字符:用来分割定义中的各个元素。例如:method SP request-target SP HTTP-version CRLF
    • 选择‘/‘:表示多个规则都是可以选择的规则。例如:start-line = request-line/response-line,start-line可以是两者中的任意一个。
    • 值范围:%##-## 。例如:如果希望取值在0-7之间,可以有两种表达方式:
      • 方式一:OCTAL = ‘0‘ / ‘1‘ / ‘2‘ / ‘3‘ / ‘4‘ / ‘5‘ / ‘6‘ / ‘7‘ ,通过或的关系来取值。
      • 方式二:OCTAL = %x30-37, 通过%进行范围取值,x30-37是十六进制的表示方式。
    • 序列组合():将规则组合起来,视为单个元素
    • 不定量重复:m* n
        • 元素表示零个或者多个元素, 例如:*(header-field CRLF)表示多个头部字段,每一个头部都以CRLF结尾。
      • m * n:1* 表示的是一个或者更多的元素,2 * 4表示两个至四个元素,此处的用法和正则匹配的规则相似。
    • 可选序列[]:可有可无的元素,例如:[message-body]
  • 核心规则

技术分享图片

基于ABNF范式的HTTP协议格式:
技术分享图片

HTTP协议

原文:https://www.cnblogs.com/ddzc/p/12365095.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!