Commit Graph

62 Commits

Author SHA1 Message Date
Aliaksandr Valialkin 48c0f89ee7 Added Stringer implementations to URI, Args and Cookie 2015-11-19 12:51:34 +02:00
Aliaksandr Valialkin ed68dfc5f6 Optimization: do not parse full requests headers on ConnectionClose and Header calls. This should speed up common case with GET requests on the server 2015-11-19 12:15:20 +02:00
Aliaksandr Valialkin a2601c68af API consistency change - make Response.StatusCode accessor 2015-11-19 11:39:20 +02:00
Aliaksandr Valialkin 835bf87605 API consistency: Clear -> Reset to be consistent with standard go packages 2015-11-18 17:55:28 +02:00
Aliaksandr Valialkin 2eff1422af Added referer accessor to RequestHeader 2015-11-17 13:47:00 +02:00
Aliaksandr Valialkin a45841e425 Optimized header lines' scanner 2015-11-17 12:52:43 +02:00
Aliaksandr Valialkin 651b992f58 Immediately parse POST request headers, since delayed parsing gives no any performance benefits 2015-11-17 12:08:07 +02:00
Aliaksandr Valialkin 81a60d8e4b unoptimize response headers parsing, since it has no positive effect 2015-11-17 11:37:38 +02:00
Aliaksandr Valialkin 63aab18752 do not optimize for content-length access on response headers, since it works slower than full headers parsing 2015-11-17 11:10:52 +02:00
Aliaksandr Valialkin 6e785c7f03 Optimize access to ContentLength() and ConnectionClose() header methods 2015-11-17 10:02:25 +02:00
Aliaksandr Valialkin 18b881caa4 removed duplicate readRawHeaders code 2015-11-17 08:54:30 +02:00
Aliaksandr Valialkin 9c9c94f4e0 Postpone headers' parsing until first access 2015-11-16 20:22:02 +02:00
Aliaksandr Valialkin 2dbf142a06 convert connectionClose to accessor 2015-11-16 18:23:08 +02:00
Aliaksandr Valialkin c728643d4a Access Content-Length via ContentLength accessor 2015-11-16 18:09:05 +02:00
Aliaksandr Valialkin 22461f2c90 Access user-agent via UserAgent accessor 2015-11-16 16:35:35 +02:00
Aliaksandr Valialkin 4797d4386d access host header via Host accessor 2015-11-16 16:32:33 +02:00
Aliaksandr Valialkin f86ba6d4ea Access requestURI via RequestURI accessor 2015-11-16 16:25:09 +02:00
Aliaksandr Valialkin 9cddf93664 access method via Method 2015-11-16 16:16:05 +02:00
Aliaksandr Valialkin 35bf5aa661 Access ResponseHeader.server via Server accessor 2015-11-16 16:13:57 +02:00
Aliaksandr Valialkin e264d1a4f8 Acccess Content-Type via ContentType() accessor 2015-11-16 16:06:28 +02:00
Aliaksandr Valialkin ac64d65324 Postpone request cookies' parsing until required. This speeds RequestHandler which doesn't use cookies 2015-11-14 21:11:07 +02:00
Aliaksandr Valialkin 8a42c802f5 Optimized Peek() function for args and request header cookies 2015-11-14 20:38:47 +02:00
Aliaksandr Valialkin 88e41d9b08 Removed accessors converting []byte to string, i.e. allocating memory. This should reduce memory usage for apps using fasthttp, since now they shoud either use []byte or do string() conversion on their own :) 2015-11-14 18:25:00 +02:00
Aliaksandr Valialkin 2e78d83bf7 Hide Request.RequestURI behind accessors in order to prevent users shooting in the foot when assigning to Request.RequestURI directly 2015-11-14 17:58:58 +02:00
Aliaksandr Valialkin 1f81c87c38 Substituted direct access to Request.Method by accessors, so package users don't shoot in the foot when assigning directly to Request.Method 2015-11-14 17:34:12 +02:00
Aliaksandr Valialkin 081a395cb3 Added helper functions to RequestHeader and ResponseHeader for fast access to the most frequently used header values 2015-11-14 13:02:41 +02:00
Aliaksandr Valialkin 982edd5a7f Treat all errors on first header byte read as EOF. This eliminates numerous and useless 'connection reset by peer' log messages for keep-alive connections on busy server 2015-11-14 12:39:51 +02:00
Aliaksandr Valialkin 69f3c67fce Added benchmark for measuring the maximum client throughput 2015-11-13 19:38:46 +02:00
Aliaksandr Valialkin 48fd01e5e0 Empty request method is equivalent to GET 2015-11-13 16:12:58 +02:00
Aliaksandr Valialkin f1e8e6bf25 Added support for identity responses. See http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4 for details 2015-11-13 13:33:32 +02:00
Aliaksandr Valialkin 16632cbaa4 Set ConnectionClose for non-http/1.1 requests/responses. Do not support Connection: keep-alive for http/1.0 intentionally, since it will complicate the code without measurable benefits 2015-11-13 12:27:47 +02:00
Aliaksandr Valialkin 6bd9b01126 Added support for 'connection: close' request header 2015-11-12 18:54:15 +02:00
Aliaksandr Valialkin f8ae53ae49 Allow whitespaces in request uri, since certain stupid http clients do not bother escaping request uri :) 2015-11-12 14:14:30 +02:00
Aliaksandr Valialkin 5460e53c17 Subsitute empty RequestURI with slash 2015-11-11 19:15:54 +02:00
Aliaksandr Valialkin 02d312eb54 Added BodyStream to Response, so RequestHandler may set BodyStream instead of Body when it needs response body streaming 2015-11-11 12:54:49 +02:00
Aliaksandr Valialkin 9735e0127b Exported ParseUint, ParseUfloat and AppendHTTPDate, which may be frequently used in http apps 2015-11-11 11:00:22 +02:00
Aliaksandr Valialkin 8c92324ef2 Copy cookies in headers' CopyTo() method 2015-11-10 17:39:28 +02:00
Aliaksandr Valialkin d4e9c2ea22 Allow setting cookies via headers' Set*() methods 2015-11-10 17:09:12 +02:00
Aliaksandr Valialkin a658557d83 Re-use VisitAll in Len implementation of ResponseHeader/RequestHeader 2015-11-10 16:52:32 +02:00
Aliaksandr Valialkin 980beca55b Added Len() to RequestHeader and ResponseHeader 2015-11-10 16:50:36 +02:00
Aliaksandr Valialkin 6bfe7306fa Do not skip cookies when calling VisitAll() on RequestHeader/ResponseHeader 2015-11-10 16:31:17 +02:00
Aliaksandr Valialkin 0f67cb2ee4 Added CopyTo() to Request and Response 2015-11-09 16:46:41 +02:00
Aliaksandr Valialkin 4c2a55ed12 Set default user-agent in http request 2015-11-08 21:58:46 +02:00
Aliaksandr Valialkin f1ff68f9f1 Optimized args, cookies and headers parsing 2015-11-05 14:28:07 +02:00
Aliaksandr Valialkin 236d4bd461 Added Cookie.ParseBytes to be consistent with Args 2015-11-05 12:54:10 +02:00
Aliaksandr Valialkin 87105b99cb Added response cookies support 2015-11-05 12:07:54 +02:00
Aliaksandr Valialkin a0e1b7f448 Added functions for obtaining cookie values from RequestHeader 2015-11-04 18:24:12 +02:00
Aliaksandr Valialkin 4123c87e7c Initial support of request cookies 2015-11-03 19:08:34 +02:00
Aliaksandr Valialkin 0d9bc5cfde Extracted predefined strings into a separate file 2015-11-03 17:48:44 +02:00
Aliaksandr Valialkin 664d577260 Added SetCanonical() methods to RequestHeader and ResponseHeader 2015-10-27 13:36:42 +02:00