@@ -57,7 +57,6 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
57
57
- [ Verdict - Typical benchmark] ( chapters/ch00-nodejs-faster-than-you-think.md#verdict-typical-benchmark )
58
58
- [ The real benchmark] ( chapters/ch00-nodejs-faster-than-you-think.md#the-real-benchmark )
59
59
- [ 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 )
61
60
- [ Elysia] ( chapters/ch00-nodejs-faster-than-you-think.md#elysia )
62
61
- [ Express] ( chapters/ch00-nodejs-faster-than-you-think.md#express )
63
62
- [ 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).
80
79
- [ 4. Transmission Overhead] ( chapters/ch01-what-is-a-web-server-anyway.md#4-transmission-overhead )
81
80
- [ 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 )
82
81
- [ 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- )
86
82
- [ 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- )
92
83
- [ Your first ` node.js ` program] ( chapters/ch02-your-first-nodejs-program.md#your-first-node-js-program )
93
84
- [ What exactly is node or nodejs?] ( chapters/ch02-your-first-nodejs-program.md#what-exactly-is-node-or-nodejs- )
94
85
- [ 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).
132
123
- [ Refactoring the code] ( chapters/ch04.1-refactoring-the-code.md#refactoring-the-code )
133
124
- [ ** The Need for Refactoring** ] ( chapters/ch04.1-refactoring-the-code.md#-the-need-for-refactoring- )
134
125
- [ ** Creating Separate Files** ] ( chapters/ch04.1-refactoring-the-code.md#-creating-separate-files- )
135
- - [ Explanation] ( chapters/ch04.1-refactoring-the-code.md#explanation )
136
126
- [ The ` index.js ` file] ( chapters/ch04.1-refactoring-the-code.md#the-index-js-file )
137
127
- [ The ` lib/logtar.js ` file] ( chapters/ch04.1-refactoring-the-code.md#the-lib-logtar-js-file )
138
128
- [ 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).
151
141
- [ The ` log ` method] ( chapters/ch04.2-writing-logs.md#the-log-method )
152
142
- [ Considering the ` log_level ` member variable] ( chapters/ch04.2-writing-logs.md#considering-the-log_level-member-variable )
153
143
- [ 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 )
156
144
- [ Another gotcha] ( chapters/ch04.2-writing-logs.md#another-gotcha )
157
145
- [ 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 )
159
146
- [ The ` require ` object] ( chapters/ch04.2-writing-logs.md#the-require-object )
160
147
- [ Adding a new helper to create log directory] ( chapters/ch04.2-writing-logs.md#adding-a-new-helper-to-create-log-directory )
161
148
- [ 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).
176
163
- [ Concurrency] ( chapters/ch04.4-intro-to-async-vs-sync.md#concurrency )
177
164
- [ Adding Rolling File Support] ( chapters/ch04.5-rolling-file-support.md#adding-rolling-file-support )
178
165
- [ 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- )
181
166
- [ The ` rolling_check() ` method] ( chapters/ch04.5-rolling-file-support.md#the-rolling_check-method )
182
167
- [ ` file_handle.stat() ` ] ( chapters/ch04.5-rolling-file-support.md#-file_handle-stat- )
183
168
- [ Calling the ` rolling_check ` method] ( chapters/ch04.5-rolling-file-support.md#calling-the-rolling_check-method )
184
169
- [ A big gotcha!] ( chapters/ch04.5-rolling-file-support.md#a-big-gotcha- )
185
170
- [ 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 )
187
171
- [ Testing the new Log file creation] ( chapters/ch04.5-rolling-file-support.md#testing-the-new-log-file-creation )
188
172
- [ HTTP Deep dive] ( chapters/ch05.0-http-deep-dive.md#http-deep-dive )
189
173
- [ 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).
201
185
- [ The ` / ` path] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#the-path )
202
186
- [ ` HTTP/0.9 ` ] ( chapters/ch05.1-http-verbs-versioning-http1_1.md#-http-0-9- )
203
187
- [ ` 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 )
209
188
- [ ` 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- )
217
189
- [ User agents] ( chapters/ch05.2-user-agents.md#user-agents )
218
190
- [ ` User-Agent ` can be weird] ( chapters/ch05.2-user-agents.md#-user-agent-can-be-weird )
219
191
- [ MIME Type and ` Content-Type ` ] ( chapters/ch05.3-mime-type-and-content-type.md#mime-type-and-content-type- )
220
192
- [ 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 )
224
193
- [ Mime Type] ( chapters/ch05.3-mime-type-and-content-type.md#mime-type )
225
194
- [ Anatomy of a MIME type] ( chapters/ch05.3-mime-type-and-content-type.md#anatomy-of-a-mime-type )
226
195
- [ But why the wildcard ` */* ` ?] ( chapters/ch05.3-mime-type-and-content-type.md#but-why-the-wildcard- )
227
196
- [ 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 )
230
197
- [ 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 )
232
198
- [ Headers] ( chapters/ch05.4-headers.md#headers )
233
199
- [ Header Name] ( chapters/ch05.4-headers.md#header-name )
234
200
- [ Colon (` : ` )] ( chapters/ch05.4-headers.md#colon- )
@@ -245,11 +211,6 @@ The repo for our backend framework- [Velocy](https://github.com/ishtms/velocy).
245
211
- [ Response Headers] ( chapters/ch05.4-headers.md#response-headers )
246
212
- [ Content-Type (response)] ( chapters/ch05.4-headers.md#content-type-response- )
247
213
- [ 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- )
253
214
- [ Set-Cookie] ( chapters/ch05.4-headers.md#set-cookie )
254
215
- [ Response and Status Codes] ( chapters/ch05.5-response-status-codes.md#response-and-status-codes )
255
216
- [ ` 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).
261
222
- [ Routing and URL Handling:] ( chapters/ch06.00-velocy-our-backend-framework.md#routing-and-url-handling- )
262
223
- [ Middlewares] ( chapters/ch06.00-velocy-our-backend-framework.md#middlewares )
263
224
- [ 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- )
268
225
- [ Caching] ( chapters/ch06.00-velocy-our-backend-framework.md#caching )
269
226
- [ Rate limiting] ( chapters/ch06.00-velocy-our-backend-framework.md#rate-limiting )
270
227
- [ 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).
274
231
- [ Chunks, oh no!] ( chapters/ch06.01-basic-router-implementation.md#chunks-oh-no- )
275
232
- [ Specifying ` Content-Length ` ] ( chapters/ch06.01-basic-router-implementation.md#specifying-content-length- )
276
233
- [ 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 )
278
234
- [ The ` Router ` class] ( chapters/ch06.02-the-router-class.md#the-router-class )
279
235
- [ Using ` Router ` with an HTTP server] ( chapters/ch06.02-the-router-class.md#using-router-with-an-http-server )
280
236
- [ ` 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 )
283
237
- [ Lexical Context] ( chapters/ch06.02-the-router-class.md#lexical-context )
284
238
- [ Arrow functions are not free] ( chapters/ch06.02-the-router-class.md#arrow-functions-are-not-free )
285
239
- [ 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).
291
245
- [ Root Node] ( chapters/ch06.05-ex-implementing-a-trie.md#root-node )
292
246
- [ End of the word] ( chapters/ch06.05-ex-implementing-a-trie.md#end-of-the-word )
293
247
- [ 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 )
298
248
- [ 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 )
303
249
- [ Exercise 2 - Implementing our Trie based ` Router ` ] ( chapters/ch06.06-ex-implementing-router.md#exercise-2-implementing-our-trie-based-router- )
304
250
- [ 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 )
310
251
- [ 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 )
317
252
- [ Exercise 3 - Adding ` HTTP ` method support] ( chapters/ch06.07-ex-adding-http-methods.md#exercise-3-adding-http-method-support )
318
253
- [ Requirements] ( chapters/ch06.07-ex-adding-http-methods.md#requirements )
319
254
- [ 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).
322
257
- [ Solution] ( chapters/ch06.07-ex-adding-http-methods.md#solution )
323
258
- [ Adding HTTP methods to the Router] ( chapters/ch06.08-adding-verbs-api.md#adding-http-methods-to-the-router )
324
259
- [ 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 )
326
260
- [ Exercise 4 - Implementing Dynamic Routing] ( chapters/ch06.09-ex-dynamic-routing.md#exercise-4-implementing-dynamic-routing )
327
261
- [ 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 )
332
262
- [ Anatomy of a dynamic route] ( chapters/ch06.09-ex-dynamic-routing.md#anatomy-of-a-dynamic-route )
333
263
- [ 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 )
339
264
- [ Summary] ( chapters/ch06.09-ex-dynamic-routing.md#summary )
340
265
- [ Running Our Server] ( chapters/ch06.10-running-our-server.md#running-our-server )
341
266
- [ Refactoring the ` TrieRouter ` class] ( chapters/ch06.10-running-our-server.md#refactoring-the-trierouter-class )
0 commit comments