@@ -57,7 +57,6 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
5757 - [ Verdict - Typical benchmark] ( chapters/ch00-nodejs-faster-than-you-think.md#verdict-typical-benchmark )
5858 - [ The real benchmark] ( chapters/ch00-nodejs-faster-than-you-think.md#the-real-benchmark )
5959 - [ Updating our code] ( chapters/ch00-nodejs-faster-than-you-think.md#updating-our-code )
60- - [ Axum] ( chapters/ch00-nodejs-faster-than-you-think.md#axum )
6160 - [ Elysia] ( chapters/ch00-nodejs-faster-than-you-think.md#elysia )
6261 - [ Express] ( chapters/ch00-nodejs-faster-than-you-think.md#express )
6362 - [ Velocy] ( chapters/ch00-nodejs-faster-than-you-think.md#velocy )
@@ -80,15 +79,7 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
8079 - [ 4. Transmission Overhead] ( chapters/ch01-what-is-a-web-server-anyway.md#4-transmission-overhead )
8180 - [ Asking and Getting: How Web Servers Respond to Your Requests] ( chapters/ch01-what-is-a-web-server-anyway.md#asking-and-getting-how-web-servers-respond-to-your-requests )
8281 - [ The Request:] ( chapters/ch01-what-is-a-web-server-anyway.md#the-request- )
83- - [ Your Request:] ( chapters/ch01-what-is-a-web-server-anyway.md#your-request- )
84- - [ Finding the Address:] ( chapters/ch01-what-is-a-web-server-anyway.md#finding-the-address- )
85- - [ Resolving the Address:] ( chapters/ch01-what-is-a-web-server-anyway.md#resolving-the-address- )
8682 - [ The Response:] ( chapters/ch01-what-is-a-web-server-anyway.md#the-response- )
87- - [ Return Address:] ( chapters/ch01-what-is-a-web-server-anyway.md#return-address- )
88- - [ Sending the Request:] ( chapters/ch01-what-is-a-web-server-anyway.md#sending-the-request- )
89- - [ Preparing the Content:] ( chapters/ch01-what-is-a-web-server-anyway.md#preparing-the-content- )
90- - [ Sending the Response:] ( chapters/ch01-what-is-a-web-server-anyway.md#sending-the-response- )
91- - [ Enjoying the Content:] ( chapters/ch01-what-is-a-web-server-anyway.md#enjoying-the-content- )
9283- [ Your first ` node.js ` program] ( chapters/ch02-your-first-nodejs-program.md#your-first-node-js-program )
9384 - [ What exactly is node or nodejs?] ( chapters/ch02-your-first-nodejs-program.md#what-exactly-is-node-or-nodejs- )
9485 - [ Your first node.js program] ( chapters/ch02-your-first-nodejs-program.md#your-first-node-js-program )
@@ -132,7 +123,6 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
132123 - [ Refactoring the code] ( chapters/ch04.1-refactoring-the-code.md#refactoring-the-code )
133124 - [ ** The Need for Refactoring** ] ( chapters/ch04.1-refactoring-the-code.md#-the-need-for-refactoring- )
134125 - [ ** Creating Separate Files** ] ( chapters/ch04.1-refactoring-the-code.md#-creating-separate-files- )
135- - [ Explanation] ( chapters/ch04.1-refactoring-the-code.md#explanation )
136126 - [ The ` index.js ` file] ( chapters/ch04.1-refactoring-the-code.md#the-index-js-file )
137127 - [ The ` lib/logtar.js ` file] ( chapters/ch04.1-refactoring-the-code.md#the-lib-logtar-js-file )
138128 - [ The ` lib/logger.js ` file] ( chapters/ch04.1-refactoring-the-code.md#the-lib-logger-js-file )
@@ -151,11 +141,8 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
151141 - [ The ` log ` method] ( chapters/ch04.2-writing-logs.md#the-log-method )
152142 - [ Considering the ` log_level ` member variable] ( chapters/ch04.2-writing-logs.md#considering-the-log_level-member-variable )
153143 - [ Writing to a file] ( chapters/ch04.2-writing-logs.md#writing-to-a-file )
154- - [ A small primer on Regular Expressions] ( chapters/ch04.2-writing-logs.md#a-small-primer-on-regular-expressions )
155- - [ Testing the log file creation] ( chapters/ch04.2-writing-logs.md#testing-the-log-file-creation )
156144 - [ Another gotcha] ( chapters/ch04.2-writing-logs.md#another-gotcha )
157145 - [ Logs directory configuration] ( chapters/ch04.2-writing-logs.md#logs-directory-configuration )
158- - [ Our first script] ( chapters/ch04.2-writing-logs.md#our-first-script )
159146 - [ The ` require ` object] ( chapters/ch04.2-writing-logs.md#the-require-object )
160147 - [ Adding a new helper to create log directory] ( chapters/ch04.2-writing-logs.md#adding-a-new-helper-to-create-log-directory )
161148 - [ Updating the ` init ` method] ( chapters/ch04.2-writing-logs.md#updating-the-init-method )
@@ -176,14 +163,11 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
176163 - [ Concurrency] ( chapters/ch04.4-intro-to-async-vs-sync.md#concurrency )
177164 - [ Adding Rolling File Support] ( chapters/ch04.5-rolling-file-support.md#adding-rolling-file-support )
178165 - [ Rolling features] ( chapters/ch04.5-rolling-file-support.md#rolling-features )
179- - [ ` #time_threshold ` ] ( chapters/ch04.5-rolling-file-support.md#-time_threshold- )
180- - [ ` #size_threshold ` ] ( chapters/ch04.5-rolling-file-support.md#-size_threshold- )
181166 - [ The ` rolling_check() ` method] ( chapters/ch04.5-rolling-file-support.md#the-rolling_check-method )
182167 - [ ` file_handle.stat() ` ] ( chapters/ch04.5-rolling-file-support.md#-file_handle-stat- )
183168 - [ Calling the ` rolling_check ` method] ( chapters/ch04.5-rolling-file-support.md#calling-the-rolling_check-method )
184169 - [ A big gotcha!] ( chapters/ch04.5-rolling-file-support.md#a-big-gotcha- )
185170 - [ Stack traces across ` await ` points] ( chapters/ch04.5-rolling-file-support.md#stack-traces-across-await-points )
186- - [ The culprit] ( chapters/ch04.5-rolling-file-support.md#the-culprit )
187171 - [ Testing the new Log file creation] ( chapters/ch04.5-rolling-file-support.md#testing-the-new-log-file-creation )
188172- [ HTTP Deep dive] ( chapters/ch05.0-http-deep-dive.md#http-deep-dive )
189173 - [ A small web server] ( chapters/ch05.0-http-deep-dive.md#a-small-web-server )
@@ -201,34 +185,16 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
201185 - [ The ` / ` path] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#the-path )
202186 - [ ` HTTP/0.9 ` ] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#-http-0-9- )
203187 - [ ` HTTP/1.0 ` ] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#-http-1-0- )
204- - [ Introduction of the HTTP Header] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#introduction-of-the-http-header )
205- - [ Versioning] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#versioning )
206- - [ Status Codes] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#status-codes )
207- - [ Content-Type Header] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#content-type-header )
208- - [ New Methods] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#new-methods )
209188 - [ ` HTTP/1.1 ` ] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#-http-1-1- )
210- - [ Persistent Connections] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#persistent-connections )
211- - [ Pipelining] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#pipelining )
212- - [ Chunked Transfer Encoding] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#chunked-transfer-encoding )
213- - [ The ` Host ` header] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#the-host-header )
214- - [ Caching improvements] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#caching-improvements )
215- - [ Range Requests] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#range-requests )
216- - [ New Methods: ` PUT ` , ` DELETE ` , ` CONNECT ` , ` OPTIONS ` , ` TRACE ` ] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#new-methods-put-delete-connect-options-trace- )
217189 - [ User agents] ( chapters/ch05.2-user-agents.md#user-agents )
218190 - [ ` User-Agent ` can be weird] ( chapters/ch05.2-user-agents.md#-user-agent-can-be-weird )
219191 - [ MIME Type and ` Content-Type ` ] ( chapters/ch05.3-mime-type-and-content-type.md#mime-type-and-content-type- )
220192 - [ Understanding the ` Accept ` Header] ( chapters/ch05.3-mime-type-and-content-type.md#understanding-the-accept-header )
221- - [ Breaking Down the Line] ( chapters/ch05.3-mime-type-and-content-type.md#breaking-down-the-line )
222- - [ Why the Wildcard?] ( chapters/ch05.3-mime-type-and-content-type.md#why-the-wildcard- )
223- - [ Server Response] ( chapters/ch05.3-mime-type-and-content-type.md#server-response )
224193 - [ Mime Type] ( chapters/ch05.3-mime-type-and-content-type.md#mime-type )
225194 - [ Anatomy of a MIME type] ( chapters/ch05.3-mime-type-and-content-type.md#anatomy-of-a-mime-type )
226195 - [ But why the wildcard ` */* ` ?] ( chapters/ch05.3-mime-type-and-content-type.md#but-why-the-wildcard- )
227196 - [ The ` Content-Type ` header] ( chapters/ch05.3-mime-type-and-content-type.md#the-content-type-header )
228- - [ ` Content-Type ` on request header] ( chapters/ch05.3-mime-type-and-content-type.md#-content-type-on-request-header )
229- - [ ` Content-Type ` on response header] ( chapters/ch05.3-mime-type-and-content-type.md#-content-type-on-response-header )
230197 - [ The ` charset=UTF-8 ` : character encoding] ( chapters/ch05.3-mime-type-and-content-type.md#the-charset-utf-8-character-encoding )
231- - [ Universal Character Encoding] ( chapters/ch05.3-mime-type-and-content-type.md#universal-character-encoding )
232198 - [ Headers] ( chapters/ch05.4-headers.md#headers )
233199 - [ Header Name] ( chapters/ch05.4-headers.md#header-name )
234200 - [ Colon (` : ` )] ( chapters/ch05.4-headers.md#colon- )
@@ -245,11 +211,6 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
245211 - [ Response Headers] ( chapters/ch05.4-headers.md#response-headers )
246212 - [ Content-Type (response)] ( chapters/ch05.4-headers.md#content-type-response- )
247213 - [ Cache-Control] ( chapters/ch05.4-headers.md#cache-control )
248- - [ How Caches Work:] ( chapters/ch05.4-headers.md#how-caches-work- )
249- - [ Cache-Control Directives:] ( chapters/ch05.4-headers.md#cache-control-directives- )
250- - [ Always Cache (infrequent updates)] ( chapters/ch05.4-headers.md#always-cache-infrequent-updates- )
251- - [ Always Cache (private only)] ( chapters/ch05.4-headers.md#always-cache-private-only- )
252- - [ Never Cache (realtime data)] ( chapters/ch05.4-headers.md#never-cache-realtime-data- )
253214 - [ Set-Cookie] ( chapters/ch05.4-headers.md#set-cookie )
254215 - [ Response and Status Codes] ( chapters/ch05.5-response-status-codes.md#response-and-status-codes )
255216 - [ ` Connection: close ` in action] ( chapters/ch05.5-response-status-codes.md#-connection-close-in-action )
@@ -261,10 +222,6 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
261222 - [ Routing and URL Handling:] ( chapters/ch06.00-velocy-our-backend-framework.md#routing-and-url-handling- )
262223 - [ Middlewares] ( chapters/ch06.00-velocy-our-backend-framework.md#middlewares )
263224 - [ Building our own database] ( chapters/ch06.00-velocy-our-backend-framework.md#building-our-own-database )
264- - [ Data Storage and Retrieval:] ( chapters/ch06.00-velocy-our-backend-framework.md#data-storage-and-retrieval- )
265- - [ Indexing:] ( chapters/ch06.00-velocy-our-backend-framework.md#indexing- )
266- - [ CRUD Operations:] ( chapters/ch06.00-velocy-our-backend-framework.md#crud-operations- )
267- - [ Querying:] ( chapters/ch06.00-velocy-our-backend-framework.md#querying- )
268225 - [ Caching] ( chapters/ch06.00-velocy-our-backend-framework.md#caching )
269226 - [ Rate limiting] ( chapters/ch06.00-velocy-our-backend-framework.md#rate-limiting )
270227 - [ Some other features that we will be implementing] ( chapters/ch06.00-velocy-our-backend-framework.md#some-other-features-that-we-will-be-implementing )
@@ -274,12 +231,9 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
274231 - [ Chunks, oh no!] ( chapters/ch06.01-basic-router-implementation.md#chunks-oh-no- )
275232 - [ Specifying ` Content-Length ` ] ( chapters/ch06.01-basic-router-implementation.md#specifying-content-length- )
276233 - [ Code reusability] ( chapters/ch06.01-basic-router-implementation.md#code-reusability )
277- - [ Separation of Concerns] ( chapters/ch06.01-basic-router-implementation.md#separation-of-concerns )
278234 - [ The ` Router ` class] ( chapters/ch06.02-the-router-class.md#the-router-class )
279235 - [ Using ` Router ` with an HTTP server] ( chapters/ch06.02-the-router-class.md#using-router-with-an-http-server )
280236 - [ ` this ` is not good] ( chapters/ch06.02-the-router-class.md#-this-is-not-good )
281- - [ Using ` .bind() ` ] ( chapters/ch06.02-the-router-class.md#using-bind- )
282- - [ Using ` Arrow ` function] ( chapters/ch06.02-the-router-class.md#using-arrow-function )
283237 - [ Lexical Context] ( chapters/ch06.02-the-router-class.md#lexical-context )
284238 - [ Arrow functions are not free] ( chapters/ch06.02-the-router-class.md#arrow-functions-are-not-free )
285239 - [ Why should we care about memory?] ( chapters/ch06.02-the-router-class.md#why-should-we-care-about-memory- )
@@ -291,29 +245,10 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
291245 - [ Root Node] ( chapters/ch06.05-ex-implementing-a-trie.md#root-node )
292246 - [ End of the word] ( chapters/ch06.05-ex-implementing-a-trie.md#end-of-the-word )
293247 - [ Challenge 1: Basic Trie with ` insert ` Method] ( chapters/ch06.05-ex-implementing-a-trie.md#challenge-1-basic-trie-with-insert-method )
294- - [ Requirements] ( chapters/ch06.05-ex-implementing-a-trie.md#requirements )
295- - [ More details] ( chapters/ch06.05-ex-implementing-a-trie.md#more-details )
296- - [ Solution] ( chapters/ch06.05-ex-implementing-a-trie.md#solution )
297- - [ Using a ` for ` loop instead of recursion] ( chapters/ch06.05-ex-implementing-a-trie.md#using-a-for-loop-instead-of-recursion )
298248 - [ Challenge 2: Implement ` search ` method] ( chapters/ch06.05-ex-implementing-a-trie.md#challenge-2-implement-search-method )
299- - [ Requirements] ( chapters/ch06.05-ex-implementing-a-trie.md#requirements )
300- - [ More details] ( chapters/ch06.05-ex-implementing-a-trie.md#more-details )
301- - [ Hints] ( chapters/ch06.05-ex-implementing-a-trie.md#hints )
302- - [ Solution] ( chapters/ch06.05-ex-implementing-a-trie.md#solution )
303249 - [ Exercise 2 - Implementing our Trie based ` Router ` ] ( chapters/ch06.06-ex-implementing-router.md#exercise-2-implementing-our-trie-based-router- )
304250 - [ Challenge 1: Implementing the ` addRoute ` method] ( chapters/ch06.06-ex-implementing-router.md#challenge-1-implementing-the-addroute-method )
305- - [ Requirements] ( chapters/ch06.06-ex-implementing-router.md#requirements )
306- - [ More details] ( chapters/ch06.06-ex-implementing-router.md#more-details )
307- - [ Hints] ( chapters/ch06.06-ex-implementing-router.md#hints )
308- - [ Solution] ( chapters/ch06.06-ex-implementing-router.md#solution )
309- - [ Explanation] ( chapters/ch06.06-ex-implementing-router.md#explanation )
310251 - [ Challenge 2: Implementing the ` findRoute ` method] ( chapters/ch06.06-ex-implementing-router.md#challenge-2-implementing-the-findroute-method )
311- - [ Requirements] ( chapters/ch06.06-ex-implementing-router.md#requirements )
312- - [ More details] ( chapters/ch06.06-ex-implementing-router.md#more-details )
313- - [ Starting Boilerplate] ( chapters/ch06.06-ex-implementing-router.md#starting-boilerplate )
314- - [ Hints] ( chapters/ch06.06-ex-implementing-router.md#hints )
315- - [ Solution] ( chapters/ch06.06-ex-implementing-router.md#solution )
316- - [ Explanation] ( chapters/ch06.06-ex-implementing-router.md#explanation )
317252 - [ Exercise 3 - Adding ` HTTP ` method support] ( chapters/ch06.07-ex-adding-http-methods.md#exercise-3-adding-http-method-support )
318253 - [ Requirements] ( chapters/ch06.07-ex-adding-http-methods.md#requirements )
319254 - [ More details] ( chapters/ch06.07-ex-adding-http-methods.md#more-details )
@@ -322,20 +257,10 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
322257 - [ Solution] ( chapters/ch06.07-ex-adding-http-methods.md#solution )
323258 - [ Adding HTTP methods to the Router] ( chapters/ch06.08-adding-verbs-api.md#adding-http-methods-to-the-router )
324259 - [ Update the ` TrieRouter ` class] ( chapters/ch06.08-adding-verbs-api.md#update-the-trierouter-class )
325- - [ Explanation] ( chapters/ch06.08-adding-verbs-api.md#explanation )
326260 - [ Exercise 4 - Implementing Dynamic Routing] ( chapters/ch06.09-ex-dynamic-routing.md#exercise-4-implementing-dynamic-routing )
327261 - [ Why Dynamic Routing?] ( chapters/ch06.09-ex-dynamic-routing.md#why-dynamic-routing- )
328- - [ Flexibility] ( chapters/ch06.09-ex-dynamic-routing.md#flexibility )
329- - [ Better User Experience] ( chapters/ch06.09-ex-dynamic-routing.md#better-user-experience )
330- - [ Better Developer Experience] ( chapters/ch06.09-ex-dynamic-routing.md#better-developer-experience )
331- - [ Better SEO] ( chapters/ch06.09-ex-dynamic-routing.md#better-seo )
332262 - [ Anatomy of a dynamic route] ( chapters/ch06.09-ex-dynamic-routing.md#anatomy-of-a-dynamic-route )
333263 - [ Challenge: Enhance the ` TrieRouter ` Class to Support Dynamic Routing] ( chapters/ch06.09-ex-dynamic-routing.md#challenge-enhance-the-trierouter-class-to-support-dynamic-routing )
334- - [ Requirements] ( chapters/ch06.09-ex-dynamic-routing.md#requirements )
335- - [ More Details] ( chapters/ch06.09-ex-dynamic-routing.md#more-details )
336- - [ Solution] ( chapters/ch06.09-ex-dynamic-routing.md#solution )
337- - [ Explanation] ( chapters/ch06.09-ex-dynamic-routing.md#explanation )
338- - [ Testing the implementation] ( chapters/ch06.09-ex-dynamic-routing.md#testing-the-implementation )
339264 - [ Summary] ( chapters/ch06.09-ex-dynamic-routing.md#summary )
340265 - [ Running Our Server] ( chapters/ch06.10-running-our-server.md#running-our-server )
341266 - [ Refactoring the ` TrieRouter ` class] ( chapters/ch06.10-running-our-server.md#refactoring-the-trierouter-class )
0 commit comments