- 1. μ¬μ©μκ° μ λ ₯ν url μ£Όμ μ€μμ λλ©μΈ λ€μμ DNS μλ²μμ κ²μνλ€. γDNS μλ²μμ ν΄λΉ λλ©μΈ λ€μμ ν΄λΉνλ IPμ£Όμλ₯Ό μ°Ύμ μ¬μ©μκ° μ λ ₯ν URL μ 보μ ν¨κ» μ λ¬νλ€.
π URLμμ λλ©μΈ λ€μ μΆμΆ
λλ©μΈ λ€μμ μΌλ°μ μΌλ‘ "www.example.com"κ³Ό κ°μ νμμ κ°μ΅λλ€.
π URL μ 보μ ν¨κ» μ λ¬
https://www.example.com:8080/path/to/resource?id=123&name=example#section1
- νλ‘ν μ½: https
- νΈμ€νΈ: www.example.com
- ν¬νΈ: 8080
- κ²½λ‘: /path/to/resource
- 쿼리 λ¬Έμμ΄: ?id=123&name=example
- νλκ·Έλ¨ΌνΈ: #section1
- 2. μΉ νμ΄μ§ URL + IP μ£Όμλ HTTP νλ‘ν μ½μ μ¬μ©νμ¬ HTTP μμ² λ©μΈμ§λ₯Ό μμ±νλ€.
//μΌλ°μ μΌλ‘ HTTP μμ² λ©μμ§λ μλμ κ°μ νμμ κ°μ΅λλ€. GET / HTTP/1.1 Host: www.example.com
- HTTP μμ² λ©μμ§μ λ΄μ©μλ μμ²ν νμ΄μ§μ κ²½λ‘, HTTP λ©μλ(GET, POST λ±), ν€λ(Host λ±), μμ² λ°λ λ±μ΄ ν¬ν¨λ©λλ€.
- 3. HTTP μμ² λ©μΈμ§λ TCP/IP λ€νΈμν¬λ₯Ό ν΅ν΄ TCP νλ‘ν μ½μ μ¬μ©νμ¬ μΈν°λ·μ κ±°μ³ ν΄λΉ IP μ£Όμμ μ»΄ν¨ν°λ‘ μ μ‘λλ€ μ΄λ κ² λμ°©ν HTTP μμ² λ©μΈμ§λ HTTP νλ‘ν μ½μ μ¬μ©νμ¬ μΉ νμ΄μ§ URL μ λ³΄λ‘ λ³νλλ€.
- 4. μΉ μλ²λ λμ°©ν μΉ νμ΄μ§ URL μ 보μ ν΄λΉνλ λ°μ΄ν°λ₯Ό κ²μνλ€.
- 5. κ²μλ μΉ νμ΄μ§ λ°μ΄ν°λ λλ€μ HTTP νλ‘ν μ½μ μ¬μ©νμ¬ HTTP μλ΅ λ©μΈμ§λ₯Ό μμ±νλ€.
π HTTP μλ΅ λ©μμ§ μμ±
HTTP μλ΅ λ©μμ§λ μΌλ°μ μΌλ‘ μν μ½λ, ν€λ λ° λ³Έλ¬ΈμΌλ‘ ꡬμ±λ©λλ€. μλλ κ°λ¨ν HTTP μλ΅ λ©μμ§λ₯Ό μμ±νλ JavaScript μ½λμ
λλ€.
// μν μ½λ const statusCode = 200; // ν€λ μ€μ const headers = { 'Content-Type': 'text/plain', // ν μ€νΈ νμμ μλ΅ 'Content-Length': 12 // λ³Έλ¬Έμ κΈΈμ΄ }; // μλ΅ λ³Έλ¬Έ const responseBody = 'Hello, World!'; // HTTP μλ΅ λ©μμ§ μμ± const httpResponse = 'HTTP/1.1 ${statusCode} OK\r\n' + Object.keys(headers).map(key => ${key}: ${headers[key]}).join('\r\n') + '\r\n' + '\r\n' + responseBody; console.log(httpResponse);
μ μ½λλ λ€μκ³Ό κ°μ HTTP μλ΅ λ©μμ§λ₯Ό μμ±ν©λλ€.
HTTP/1.1 200 OK Content-Type: text/plain Content-Length: 12 Hello, World!
- 6. μ΄λ κ² μμ±λ HTTP μλ΅ λ©μΈμ§λ TCP νλ‘ν μ½μ μ¬μ©νμ¬ μΈν°λ·μ κ±°μ³ μλ μ»΄ν¨ν°λ‘ μ λ¬λλ€.
- 7. λμ°©ν HTTP μλ΅ λ©μΈμ§λ HTTP νλ‘ν μ½μ μ΄μ©νμ¬ μΉ νμ΄μ§ λ°μ΄ν°λ‘ λ³νλκ³ , μΉ λΈλΌμ°μ μ μν΄ μΆλ ₯λμ΄ μ¬μ©μκ° λ³Ό μ μκ² λλ€.