最近学习了下http_parse解析库,是nginx的一个解析http库, 在解析的过程中,它不会调用任何系统调用,不会在HEAP上申请内存,不会缓存数据,并且可以在任意时刻打断解析过程,而不会产生任何影响。在解析http的时候使用http_parse可以大幅度提高效率(Ps:当然一些开源的库也是比较好用的。如果你写的是基础框架类,那么使用这个库是再好不过了)。
本文主要分为两部分学习。第一部分简单了解http的一些基本知识。第二部分简单学习http_parse库使用
第一部分:http基本知识
1.http的请求格式包括 request line、Request header、空行、Body。如果是get方法则不包含body。
2.url解释
schema://host[:port#]/path/.../[?query-string][#anchor]
scheme 指定低层使用的协议(例如:http, https, ftp)
host HTTP服务器的IP地址或者域名
port# HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/
path 访问资源的路径
query-string 发送给http服务器的数据
anchor- 锚
举例:
http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff Schema: http host: www.mywebsite.com path: /sj/test/test.aspx Query String: name=sviergn&x=true Anchor: stuff
网上有很多http相关的学习博客或者文档。这里就不多余的阐述了
第二部分 http_parse使用