Commit Graph

74 Commits

Author SHA1 Message Date
Aliaksandr Valialkin 4ac44f0c6c Mention which structs are safe for use from concurrently running goroutines (Server, Client and HostClient) and which structs are unsafe to use from concurrently running goroutines - all the other 2015-12-03 13:38:59 +02:00
Aliaksandr Valialkin fe212fe380 Issue #6: Add support for PATCH method and other methods which may contain body 2015-12-02 20:17:50 +02:00
Aliaksandr Valialkin 6a340b7334 Added request PUT method support 2015-11-29 11:32:44 +02:00
Aliaksandr Valialkin b1ba91323e Issue #6: allow setting content-type on on-POST requests 2015-11-28 19:46:15 +02:00
Aliaksandr Valialkin efb4e2cd30 Fixed a typo 2015-11-28 14:17:11 +02:00
Aliaksandr Valialkin 01031f43e2 Added support form multipart/form-data POST requests 2015-11-27 16:23:02 +02:00
Aliaksandr Valialkin 52c04f13b2 Added support for 'Connection: Upgrade', so RequestHandler may detect such connections and hijack them 2015-11-24 15:48:10 +02:00
Aliaksandr Valialkin 9f7463cd28 Access Cookie members via accessors 2015-11-22 13:29:21 +02:00
Aliaksandr Valialkin a862d8592a Documentation update 2015-11-22 06:33:58 +02:00
Aliaksandr Valialkin 82aca55d5a API consistency fix - GetCookie -> Cookie, PeekCookie -> Cookie 2015-11-22 02:16:05 +02:00
Aliaksandr Valialkin 22c2789727 Added WriteTo, AppendBytes and String methods to RequestHeander and ResponseHeader 2015-11-22 02:14:09 +02:00
Aliaksandr Valialkin 5407951c06 Do not parse raw headers when writing request headers. This should improve request proxying speed 2015-11-22 00:41:06 +02:00
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