网络互连模型 (应用层 -- HTTP)

目录

HTTP

报文格式

请求报文

响应报文

ABNF

ABNF - 规则定义

报文格式 ~ HTTP-message

报文格式 ~ request-line

报文格式 ~ status-line

报文格式 ~ header-field

报文格式 ~ message-body

URL编码

Xshell模拟HTTP请求

请求方法

头部字段 

请求头字段

响应头字段

Access-Control-Allow-Origin 分析

Set-Cookie 分析 

Cache-Control 分析

状态码

常见状态码

Form表单


HTTP

HTTP(Hyper Text Transfer Protocol), 译为超文本传输协议, 是互联网中应用最广泛的应用层协议之一
设计HTTP最初的目的是: 提供一种发布和接收HTML页面的方法, 由URI来标识具体的资源, 后面用HTTP来传递的数据格式不仅仅是HTML, 应用非常广泛

  • 1991年, HTTP/0.9: 只支持GET请求方法获取文本数据(比如HTML文档), 且不支持请求头、响应头等, 无法向服务器传递太多信息
  • 1996年, HTTP/1.0: 支持POST、HEAD等请求方法, 支持请求头、响应头等, 支持更多种数据类型(不再局限于文本数据), 浏览器的每次请求都需要与服务器建立一个TCP连接, 请求处理完成后立即断开TCP连接
  • 1997年, HTTP/1.1: 支持PUT、DELETE等请求方法, 采用持久连接(Connection: keep-alive), 多个请求可以共用同一个TCP连接
  • 2015年, HTTP/2.0
  • 2018年, HTTP/3.0

报文格式

请求报文

请求报文实例 - GET请求

请求报文实例 - POST请求


响应报文

响应报文实例


ABNF

ABNF(Augmented BNF): 是BNF(Backus-Naur Form,译为:巴科斯-瑙尔范式)的修改、增强版。在RFC 5234中表明:ABNF用作internet中通信协议的定义语言。ABNF是最严谨的HTTP报文格式描述形式, 脱离ABNF谈论HTTP报文格式, 往往都是片面、不严谨的

ABNF - 规则定义

报文格式 ~ HTTP-message

 

报文格式 ~ request-line

示例: 
     GET /hello/ HTTP/1.1

报文格式 ~ status-line

示例: 
    HTTP/1.1 200
    HTTP/1.1 200 OK 

报文格式 ~ header-field

示例:
    Host: localhost:8080
    Connection: keep-alive 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值