└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Forget HTTP 2 | 3 | This GitHub organization focuses on designing abstract HTTP helpers or coding reference implementations, as described in IETF/W3C/etc specifications. 4 | 5 | **This is one of the least opinionated collection of repositories that you will find on HTTP.** 6 | 7 | ## More bla 8 | 9 | * https://www.youtube.com/watch?v=9Qnx1h5cQxo 10 | * https://hyperrest.github.io/2013-06-10-http-hell-no 11 | * https://hyperrest.github.io/2013-10-14-man-overboard 12 | * https://www.youtube.com/watch?v=UqTlToUYK1E 13 | * https://vimeo.com/20784244 14 | * http://seancribbs.com/tech/2012/01/16/webmachine-vs-grape/ 15 | 16 | 17 | ## HTTP flow overview 18 | 19 | \* HTTP/2.0 encapsulation is omitted 20 | 21 | 1. receive request 22 | 1. parse messaging - [RFC7230](https://tools.ietf.org/html/rfc7230) 23 | 2. parse semantics - [RFC7231](https://tools.ietf.org/html/rfc7231) (and extensions) 24 | 2. prepare response 25 | 1. decide 26 | 3. send response 27 | 1. generate semantics 28 | 2. generate messaging 29 | 30 | 31 | ## Effort overview (roadmap) 32 | 33 | Dependencies and their reference implementations: 34 | 35 | * 1. and 3. need a server 36 | * [HTTPDD Server](https://github.com/for-GET/server) 37 | * 2. needs an FSM 38 | * [HTTPDD (HTTP decision diagram)](https://github.com/for-GET/http-decision-diagram) 39 | * [HTTPDD Machine](https://github.com/for-GET/machine) 40 | * 1.i. and 1.ii. need parsers 41 | * [Core PEGjs](https://github.com/for-GET/core-pegjs) 42 | * 2.i., 3.i. and 3.ii. need helpers/generators 43 | * [API PEGjs](https://github.com/for-GET/api-pegjs) 44 | * 1., 2. and 3. need language agnostic tests 45 | * [parse->AST->stringify (API PEGjs)](https://github.com/for-GET/api-pegjs-test) 46 | * Decision 47 | * [Content Negotiation](https://github.com/for-GET/conneg-test) 48 | * Caching 49 | * Conditional 50 | * ... 51 | --------------------------------------------------------------------------------