[TIL 2/5] 텔넷(Telnet)명령을 통해 HTTP 요청하기

Song-YunMin·2021년 2월 5일
4

TIL

목록 보기
17/29
post-custom-banner

Today I Learned

  • Telnet 명령을 통해 HTTP 요청하기
  • traceroute 명령을 통해 www.google.com 경로 탐색
  • Node.JS는 무엇인가?

Telnet 명령을 통해 HTTP 요청하기

Mac 터미널에서 아래와 같은 명령어를 치면 다음과 같은 출력이 나옵니다.

telnet www.google.com 80

telent으로 www.google.com에 80번 포트로 연결한다는 의미입니다.

다음 아래 명령어를 실행시킵니다.

GET / HTTP/1.1

GET 방식으로 HTTP 요청을 보내줍니다. 그럼 아래와 같은 소스코드 및 헤더를 볼 수 있습니다.

여기에 나오는 헤더는 아래와 같은 의미를 가지고 있습니다.

Trying 108.177.97.103...
Connected to www.google.com.
Escape character is '^]'.
GET / HTTP/1.1

HTTP/1.1 200 OK
Date: Thu, 04 Feb 2021 05:34:47 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Server: gws
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Set-Cookie: 1P_JAR=2021-02-04-05; expires=Sat, 06-Mar-2021 05:34:47 GMT; path=/; domain=.google.com; Secure
Set-Cookie: NID=208=gX8nt2mkFX74bpfjWdJO2Go_oz6GRdJkhGzSoLtANLrmF16RAXMrLt0ER8F1ZHJnQjLXms-Y26-CDURg3rMHgfPPQtxSRaKxY01olVECwPE5TPajzYVGQvvdwqofOdATZtfPNlG2AOdc-wDvZ5iKl_FyOdeskzGr_Es6nv0-Wg0; expires=Fri, 06-Aug-2021 05:34:47 GMT; path=/; domain=.google.com; HttpOnly
Accept-Ranges: none
Vary: Accept-Encoding
Transfer-Encoding: chunked

헤더의 역할

  • Date : HTTP 메세지 생성 일자
  • Connection : Server / Clinet 간의 연결 옵션
  • Cache-Control : 쿠키/캐시 관련 정보
  • Content - Type : 미디어 타입 정보
  • Expires : 리소스가 지정된 일시까지 유효함을 나타냄.
  • Server : 서버의 정보
  • X-XSS-Protection : 특정 브라우저에서 제공하는 기능, XSS공격을 감지 할 때 페이지 로드를 중지 시킬 수 있음
  • X-Frame-Options : 해당 페이지를 <frame> 또는 <iframe> , <object> 에서 렌더링 할 수 있는지 여부를 나타내는데 사용 됨
  • Set-Cookie : 서버측에서 클라이언트측으로부터 세션 쿠기 정보를 설정 함
  • Accept-Ranges : 부분 요청에 지원을 알리기 위해 서버에 의해 사용되는 표식. 이 헤더가 존재하면 브라우저는 처음부터 다시 다운로드를 시작하지 않고, 중단된 다운롣를 재개하려고 함.
  • Vary : 캐시 된 응답을 향후 요청들에서 오리진 서버로 새로운 요청 헤더를 요청하는 대신 사용할 수 있는지 여부를 결정함.
  • Tranfer-Encoding : 사용자에게 entitiy를 안전하게 전송하기 위해 사용하는 인코딩 형식을 지정함.

HTTP 헤더를 분석해야 할 때 알고있으면 매우 유용한 내용입니다.

traceroute 명령을 통해 www.google.com 경로 탐색

이번엔 traceroute 명령을 통해 www.google.com 까지 가는 경로를 탐색해 보겠습니다.
명령은 간단합니다. 아래 명령어를 터미널에 입력합니다.

$ traceroute www.google.com

그럼 현재 위치에서 www.google.com 서버에 접속하는 경로를 보여줍니다.
위치를 검색하여 정리하면 아래와 같은 경로로 이동합니다.

// 공유기 IP
1  
192.168.219.1 (192.168.219.1)  3.218 ms  1.777 ms  2.123 ms

// LG POWERCOM - 서울
2  
49.171.95.129 (49.171.95.129)  7.447 ms  7.054 ms  8.508 ms

// Fail
3  
10.203.29.129 (10.203.29.129)  4.308 ms  4.998 ms  5.740 ms

// LG DACOM - 용산
4  
1.213.20.205 (1.213.20.205)  4.592 ms
1.208.20.221 (1.208.20.221)  3.657 ms   
1.213.20.1 (1.213.20.1)  3.395 ms

// LG DACOM - 용산
5  
1.208.167.133 (1.208.167.133)  7.940 ms
1.213.152.177 (1.213.152.177)  4.923 ms
1.208.167.133 (1.208.167.133)  7.280 ms

// LG DACOM - 용산
6  
1.213.107.253 (1.213.107.253)  4.250 ms
61.42.202.129 (61.42.202.129)  4.493 ms
1.208.145.18 (1.208.145.18)  5.799 ms

// LG DACOM - 용산
7  
1.208.167.105 (1.208.167.105)  3.886 ms
1.208.174.29 (1.208.174.29)  4.912 ms
1.208.145.189 (1.208.145.189)  4.835 ms

// LG DACOM - 용산
8  
1.208.0.74 (1.208.0.74)  50.289 ms
164.124.250.202 (164.124.250.202)  49.542 ms
203.252.13.22 (203.252.13.22)  39.177 ms

// LG DACOM - 용산
9  
1.208.106.106 (1.208.106.106)  40.203 ms
1.208.150.182 (1.208.150.182)  38.743 ms
1.208.148.206 (1.208.148.206)  46.546 ms

// Google LLC - United States
10  
74.125.118.154 (74.125.118.154)  47.885 ms
72.14.215.29 (72.14.215.29)  50.765 ms
74.125.118.154 (74.125.118.154)  40.901 ms

// Fail
11  * 10.252.54.126 (10.252.54.126)  56.955 ms *

// Google LLC - Canada
12  
108.170.241.33 (108.170.241.33)  41.817 ms
108.170.241.97 (108.170.241.97)  52.353 ms
72.14.234.62 (72.14.234.62)  49.768 ms

// Google LLC - Canada
13  
108.170.241.79 (108.170.241.79)  43.670 ms
108.170.241.48 (108.170.241.48)  57.734 ms
108.170.241.112 (108.170.241.112)  39.848 ms

// Google LLC - United States
14  
216.239.62.165 (216.239.62.165)  49.609 ms
216.239.63.216 (216.239.63.216)  49.412 ms
209.85.142.203 (209.85.142.203)  40.273 ms

// Google LLC - Canada
15
* 209.85.245.161 (209.85.245.161)  64.221 ms
172.253.50.221 (172.253.50.221)  54.761 ms

// Google LLC - Canada
16  
209.85.251.170 (209.85.251.170)  55.561 ms
209.85.247.118 (209.85.247.118)  54.278 ms
209.85.249.144 (209.85.249.144)  63.387 ms

// Google LLC - Canada
17  
216.239.50.243 (216.239.50.243)  53.268 ms
74.125.252.231 (74.125.252.231)  56.760 ms
216.239.50.243 (216.239.50.243)  54.880 ms

18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *

// Google LLC - Taiwan
27  tg-in-f106.1e100.net (74.125.23.106)  60.099 ms  51.111 ms  51.437 ms

그럼 이렇게 Routing되는 기준은 누가, 어떻게 정할까요? 누가에 대한 대답은 아마 라우터가 하겠죠? 어떻게 정할지는 다음에 포스팅 하도록 하겠습니다.

Node.JS 란 무엇인가?

게시물이 너무 길어질것 같아 따로 링크로 빼겠습니다.
Node.JS는 무엇인가?

profile
고독한 서버 개발 3년차
post-custom-banner

0개의 댓글