DevBoi

브라우저에서 부터 서버 응답까지의 흐름 본문

[Computer Science]

브라우저에서 부터 서버 응답까지의 흐름

HiSmith 2021. 9. 5. 14:38
반응형

웹 백앤드 개발자가 알아두어야 할, 네트워크 방식에 대해서 알아보자

스프링에서 사용자의 요청에 따른 응답처리는 framework에서의 내부동작이지만, 네트워크 단계에서 사용자의

요청, 응답단계에 대해서 알아보자

 

1. 사용자가 브라우저에서 url을 입력한다.

 

2. 브라우저가 해당 url을 분석한다.

URL의 구조는 해당 과 같다.

 

2-1. schem : http, https 와 같이 요청 주체에 따라서 다르게간다. 크게는 http, https (보안 차이), ftp 등이 있다.

2-2. host : 주체

2-3. port : host와 통신하는 쪽의 포트이다. 이건 사전에 약속이 되어있지만, 실제 사용자들은 이렇게 포트까지 치고 들어갈 필요는 거의없다. host쪽에서 자동설정으로 해놓기 떄문에, 대부분 80443 이고, api등 데이터 통신을 위해서일때 다른 포트를 정의할때 사용한다.

 

 

 

3. url이 규칙에 맞지않다면, 브라우저 기본 검색 엔진을 통해 탐색한다.

4. 문법에 맞다면, PunyCode encoding을 url host 부분에 적용한다.

PunyCode encoding이란 국제화 도식화된, Dns 네이밍 룰이라고 생각하면된다.

 

5.url을 ip주소로 변환하거나 DNS조회를 한다.

따라서, 해당 호스트파일과, 브라우저 캐시에 해당 url이 존재하는지를 체크를 한다.

Local DNS에 해당, ip를 요청한다.있다면, 요청 하고, 없으면 DNS 서버에서 해당 IP를 요청한다.

 

DNS 서버에 요청을 할때, 예를 들어서, www.daum.net에  대한 요청을 할때는, .net에 대한 DNS 관리에, 요청을 하고

.net이 없다면, daum.net을 관리하는 dns 서버에 요청하여, ip를 받아온다.

 

6. 응답받은 ip가 존재하면, local DNS에 이를 캐싱하고, 응답처리를 한다.

 

해당 과 같이 client가 목적지를 적어서, 여러가지의 router를 거친후에, 해당 목적지로 도착을 하게 된다.

 

 

7. 해당 ip주소를 mac주소로 변환한다.

해당 실질적은 통신을 위해서는, 논리적인 ip주소가 아닌, mac주소(물리적인 주소)를 알아야 가능하다.

해당 ip같이 논리적인 주소를 mac, 물리적인 주소로 변환 시켜주는 장치는 따로 존재한다.

ARP를 통해서, 주소를 논리 -> 물리 주소로 변환 시켜준다.

ARP는 , 자신이 어떤 ip를 가지고 있고, 이 ip를 호출하면, 이 가지고있는 노드가, 자신의 mac주소를 응답하게 끔 설계 되어있다.

 

자신의 mac주소를 응답하게 된다면, 세션 연결과 TCP연결 진행을 위한, OSI계층 모델을 통해, 연결을 진행한다.

HTTPS 연결이라면, TLS 핸드쉐이킹 연결이 추가로 진행이 된다.

 

해당 방식으로, TCP연결이 진행이 되고, TCP에 대한건, 요청-응답의구조로 이루어진다.

한가지 특이한 사항으로는, 서버쪽에서 응답에 대한 값을 전달 할때, 응답+요청의 값을 같이 전달한다는 점에 있다.

 

반응형

'[Computer Science]' 카테고리의 다른 글

[기술 지식] MSA 구조가 뭐임?  (0) 2021.09.06
DTO, DAO, VO 예제 및 예시  (0) 2021.09.05
트리, 이진 트리 Binary Search tree  (0) 2021.09.05
Deep copy 와 shallow copy의 차이점  (0) 2021.09.02
트리와 이진트리  (0) 2021.08.31