77
88 < head >
99 < meta charset =utf-8 >
10-
10+
1111 < title >
1212 Simple Proxy
1313 </ title >
14-
14+
1515 < meta name =description content ='Learn how to build a simple HTTP proxy server in Node.js with step-by-step code examples. Perfect for beginners exploring networking, request forwarding, and basic server setup. '>
1616 < link rel =icon type ='image/png ' href ='/blog/image/blog-30.png '>
1717 < meta name =viewport content ='width=device-width, initial-scale=1 '>
18-
18+
1919 < base href ='https://ext-code.com/blog/25-07-27/simple-proxy/ '>
2020 < link rel =canonical href ='https://ext-code.com/blog/25-07-27/simple-proxy/simple-proxy.html '>
2121
22-
22+
2323 < script type ='application/ld+json '>
2424
2525 {
3333 "mainEntityOfPage" : { "@type" :"WebPage" , "@id" :"https://ext-code.com/blog/25-07-27/simple-proxy/simple-proxy.html" } ,
3434 "publisher" : { "@type" :"Organization" , "name" :"ext-code.com" , "logo" :{ "@type" :"ImageObject" , "url" :"https://ext-code.com/favicon.ico" } } ,
3535 }
36-
36+
3737 </ script >
38-
39-
40-
38+
39+
40+
4141 < script src ='https://ajaxorg.github.io/ace-builds/src-noconflict/ace.js '> </ script >
42-
43-
44- < script src ='https://libs.ext-code.com/js/dom/component/component.js '> </ script >
4542
46-
47- < script init >
43+
44+ < script src ='https://libs.ext-code.com/js/dom/component/v3.0/component.js '> </ script >
45+
46+
47+ < script init >
4848 console . clear ( ) ;
4949 console . log ( 'simple-proxy.html' ) ;
5050 console . log ( ) ;
5151 console . json = v => console . log ( JSON . stringify ( v , null , 4 ) ) ;
5252 var df = true , version = 'v2.0'
5353 ;
54-
55-
54+
55+
5656 var ext ;
5757 var $ ;
5858 var datatype ;
5959 var menumod ;
6060 var keydown ;
6161 var debug ;
62-
63-
62+
63+
6464 var ace ;
6565
6666 var menu ;
67-
67+
6868 var hdr ;
6969 var example ;
7070 var log ;
7171
7272
7373 //:
74-
75-
74+
75+
7676 async function init ( ) {
7777 //debug('init',version);
78-
78+
7979 menu = menumod ( ) ;
80-
80+
8181 mod . base . add ( { ext, $, datatype, keydown, menu, menumod, ace} ) ;
8282
83-
83+
8484 hdr = mod [ 'blog-hdr' ] ;
8585 example = mod . example ;
8686 log = mod [ 'log-mod' ] ;
9595 log . init ( ) ,
9696 ] ) ;
9797
98-
98+
9999 initdom ( document . body ) ;
100-
100+
101101
102102 } //init
103-
104-
103+
104+
105105 //:
106106
107107
110110 mod . stack . add ;
111111
112112 ( { ext} = await import ( 'https://libs.ext-code.com/js/io/ext-loader/ext-loader.m.js' ) ) ;
113-
113+
114114 var promise = ext . load . libs (
115115 'js/dom/$.js.api' ,
116116 'js/core/datatype.js' ,
119119 'js/debug/debug.js' ,
120120 ) ;
121121 [ $ , datatype , menumod , keydown , debug ] = await promise ;
122-
122+
123123
124124 [ srcdoc ] = await ext . text . github ( 'javascript-2020:javascript-2020.github.io:main:blog/25-07-25/http-streaming-download/ex/srcdoc.html' ) ;
125125
126126 mod . stack . complete ;
127-
127+
128128} ) ( ) ;
129129
130-
131- </ script init>
132-
133130
131+ </ script init>
132+
133+
134134<!--
135135 //:
136136-->
137137
138-
139- < link rel =stylesheet href ='/blog/css/blog.css '>
140138
139+ < link rel =stylesheet href ='/blog/css/blog.css '>
140+
141141 < style >
142142
143143 html
152152 [component ]
153153 {display : none}
154154
155- .description
155+ .description
156156 {max-width : 1000px ;text-align : justify;border-left : 4px solid # 4a90e2 ;padding : 1rem ;
157157 background-color : # f9f9f9 ;font-family : system-ui, sans-serif;font-size : 1rem ;line-height : 1.6 ;color : # 333 }
158158 .description > p
159159 {margin : 0 }
160160 .description > p + p
161161 {margin : 10px 0 }
162-
162+
163163 code
164164 {font-family : monospace;background : whitesmoke}
165165 code .inline
166166 {display : inline;padding : 5px 10px }
167-
167+
168168 a
169169 {color : # 4a90e2 ;text-decoration : none;font-weight : 500 }
170- a : hover
170+ a : hover
171171 {text-decoration : underline}
172172 .link-domain
173173 {font-size : 0.85rem ;color : # 777 ;margin-left : 0.25rem }
174- .link-domain ::before
174+ .link-domain ::before
175175 {content : '[' }
176176 .link-domain ::after
177177 {content : ']' }
178178 .link-txt
179179 {}
180-
180+
181181 input
182182 {font-size : 16px ;padding : 5px 7px ;box-sizing : border-box;}
183183 input [type = button ]
184184 {cursor : pointer}
185-
186-
187-
185+
186+
187+
188188 editor-root
189189 {border : 2px solid # 4a90e2 ;border-radius : 5px ;padding : 10px ;overflow : hidden;}
190-
191-
192-
190+
191+
192+
193193 </ style >
194194
195195 </ head >
196196
197197
198198 < body >
199-
200-
199+
200+
201201 < blog-hdr component =grp1 >
202202 < h1 class =title >
203203 Simple Proxy
@@ -206,8 +206,8 @@ <h1 class=title>
206206 22 Oct 2025
207207 </ time >
208208 </ blog-hdr >
209-
210-
209+
210+
211211 < div class =description >
212212
213213 < p >
@@ -216,29 +216,29 @@ <h1 class=title>
216216 </ p >
217217
218218 </ div >
219-
220-
219+
220+
221221 < web-editor id =example src ='ex/simple-proxy.js ' component > </ web-editor >
222-
223-
222+
223+
224224 < log-mod component > </ log-mod >
225-
226225
227- </ body >
228-
229226
227+ </ body >
228+
229+
230230 < script >
231231
232-
232+
233233 function initdom ( rootnode ) {
234-
234+
235235 hdr . initdom ( ) ;
236236 example . initdom ( { fullsize :true } ) ;
237237 log . initdom ( ) ;
238238
239239 } //initdom
240240
241-
241+
242242 </ script >
243243
244244
0 commit comments