repo: update readme

This commit is contained in:
Kevin J. 2024-09-17 18:49:01 +02:00
parent dbcf0d8ef4
commit f0f11e111b

20
README
View File

@ -4,12 +4,17 @@
Proxy C library for HTTP/s protocol Proxy C library for HTTP/s protocol
NOTE: I have yet to turn this piece of clutter into a library.
RFC: datatracker.ietf.org/doc/html/rfc1945 RFC: datatracker.ietf.org/doc/html/rfc1945
RES: cs.princeton.edu/courses/archive/spr13/cos461/assignments-proxy.html RES: cs.princeton.edu/courses/archive/spr13/cos461/assignments-proxy.html
RES: Beej's Guide to Network Programming - Using Internet Sockets RES: Beej's Guide to Network Programming - Using Internet Sockets
RES: en.wikipedia.org/wiki/Proxy_server RES: en.wikipedia.org/wiki/Proxy_server
RES: TCP/IP sockets in C - Practical guide for programmers 2nd edition RES: TCP/IP sockets in C - Practical guide for programmers 2nd edition
RES: tinyproxy.github.io/
RES: github.com/nginx/nginx
TECHNICALS TECHNICALS
* Parsing is carried by a dedicated sub-library which I wrote named parslib. * Parsing is carried by a dedicated sub-library which I wrote named parslib.
@ -18,6 +23,10 @@ TECHNICALS
no matter the amount of strings you want to compare it against (I am indeed no matter the amount of strings you want to compare it against (I am indeed
aware it is nonetheless worse than hashtables - maybe one day I will implement aware it is nonetheless worse than hashtables - maybe one day I will implement
those on my own as well). those on my own as well).
* After the connection is established with the upstream server, a relay loop
is started in which the client data is relayed to the server's socket and
server data is relayed to client's socket. This is highly inspired from
tinyproxy.
TASKS TASKS
@ -26,15 +35,16 @@ TASKS
[DONE] Implement client message parsing [DONE] Implement client message parsing
[DONE] Implement server message parsing [DONE] Implement server message parsing
[DONE] Add loose string checking for headers [DONE] Add loose string checking for headers
[DONE] Relaying mechanism
[DOING] Cover all possible body segmentation standards [DOING] Cover all possible body segmentation standards
[DONE] Cover Content-Length [DONE] Cover Content-Length
[DOING] Cover "chunked transfer encoding" [DONE] Cover "chunked transfer encoding"
[DOING] Cover "compress transfer encoding" [TODO] Cover "compress transfer encoding"
[DOING] Cover "deflate transfer encoding" [TODO] Cover "deflate transfer encoding"
[DOING] Cover "gzip/x-gzip transfer encoding" [TODO] Cover "gzip/x-gzip transfer encoding"
[ACTIVELY DOING] More testing, debugging, fixing [ACTIVELY DOING] More testing, debugging, fixing
[ACTIVELY DOING] Verify and search for memory leaks [ACTIVELY DOING] Verify and search for memory leaks
[TODO] Implement HTTPS with OpenSSL, LibreSSL, or BearSSL [TODO] Implement HTTPS
[TODO] Caching? [TODO] Caching?
COMMITS COMMITS