Commit Graph

78 Commits

Author SHA1 Message Date
Aliaksandr Valialkin 5ff6be8fee Substitute AppendBytesStr by append() 2015-12-19 20:38:10 +02:00
Aliaksandr Valialkin ddfa9f5dc0 Clarify Append* return values 2015-12-19 20:29:17 +02:00
Aliaksandr Valialkin 495e130b8f Issue #16: support 'Connection: keep-alive' header for non-http/1.1 requests and/or responses 2015-12-10 11:19:34 +02:00
Aliaksandr Valialkin 9c18f79145 Added support for If-Modified-Since to SendFile and FS 2015-12-09 18:51:51 +02:00
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