Why nginx's http parser doesnt use regular expressions?

Maxim Dounin mdounin at mdounin.ru
Mon Jun 24 10:51:02 UTC 2013


Hello!

On Sun, Jun 23, 2013 at 11:16:21AM +0530, anshuk kumar wrote:

> This is in reference to the following code
> 
> https://github.com/joyent/http-parser
> 
> What could be the main reason for such a design decision? I guess I could
> write few regular expressions to parse HTTP req & res this would be a lot
> less complex than Igor's version of the parser.
> 
> What am I missing here?

Regular expressions isn't something readily available when you 
code in C, nor something which can be easily used to parse data 
available in chunks.  It's also highly unlikely that even 
carefully coded regular expressions will be able to beat C code in 
terms of performance.

Of course if you are coding some simple http server in perl or 
javascript - using regular expressions is a way to go.  But it's 
unlikely a good choise if you are coding high performance web 
server in C.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx-devel mailing list