主状态机的状态
- 正在分析请求行 CHEACK_STATE_REQUESTLINE -> parse_requestline
- 正在分析头部字段 CHECK_STATE_HEADER -> parse_headers
从状态机的三种可能状态,即行的读取状态
- 读取道一个完整的行 LINE_OK
- 行出错 LINE_BAD
- 数据尚且不完整 LINE_OPEN
服务器HTTP 请求结果
- NO_REQUEST 表示请求不完整,还需要继续读取客户数据
- GET_REQUEST 表示获得了一个完整的客户请求
- BAD_REQUEST 表示客户请求有语法错误
- FORBIDDEN_REQUEST 表示客户对资源没有足够的访问权限
- INTERNAL_ERROR 表示服务器内部错误
- CLOSE_CONNECTION 表示客户端已经关闭连接了
LINE_STATUS parse_line (char* buffer, int& checked_index, int& read_line)
用于解析出一行的内容
checked_index 指向 buffer 中当前正在分析的字节,read_index 指向 buffer 中客户数据的尾部的下一个字节, buffer 中 0 ~ checked_index 字节都分析完毕,第 checked_index ~ read_index - 1,需要逐个分析
parse_line ->ok 的,才能开始分析请求行以及头部字段
HTTP_CODE parse_requestline (char* temp, CHECK_STATE& checkstate)
用于分析请求行
HTTP_CODE parse_headers(char* temp)
分析头部字段
HTTP_CODE prase_content(char* buffer, int& checked_index, CHECK_STATE& checkstate, int& read_index, int& start_line)
HTTP 请求的入口函数
原文链接: https://www.cnblogs.com/wsl-hitsz/p/14584496.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/397322
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!