1. HTTP请求报文
2. 消息体编码
application/x-www-form-urlencoded
表单数据被编码为key1=value1&key2=value2…形式,这是默认形式,并且对key和value都进行了URL转码, 空格转换为 “+” 加号,特殊符号转换为 ASCII HEX(16进制) 值。
3. 有限状态机
整个解析过程包含4个状态:1)解析请求行;2)解析请求头;3)解析消息体;4)解析完成。
4. C++ 正则表达式
4.1 各符号含义
- ^:限定开头的字符
- $:限定结尾的字符
- .:匹配任意单个字符
- *****:*前的单个字符可以出现任意次(单个字符包括空格)
- ?:?前的单个字符最多出现一次
- +:+前的单个字符至少出现一次(单个字符不包括空格)
- ()分组: (123),这样可以将匹配到的123取出来
- {}长度: {4,9},这个表示前一个字符串的长度为4到9
- []范围: [a-z],这个表示匹配所有的小写字母
- [^a]: 匹配除了a的任意字符
4.2 C++ 标准regex库