본문 바로가기

Layer7/동아리 숙제

웹브라우저와 서버의 통신

클라이언트와 서버
더보기

클라이언트 : 서버에 서비스를 요청하는 컴퓨터

서버 : 클라이언트에 서비스를 제공하는 컴퓨터

 

만약 우리가 Naver에 접속하고 있다고 하면

Naver에 접속하는 우리는 클라이언트가 되고, 네이버회사에 Naver 페이지를 보내달라고 요청하게 된다.

Naver 페이지를 보내주는 네이버회사는 서버가 된고, 클라이언트에게 요청받은 Naver 페이지를 보내줌으로 응답하게 된다.

 

웹브라우저의 동작과정
더보기

웹브라우저는 앞서 말한 클라이언트와 서버와의 상호작용을 사용자가 좀더 편하게 할 수 있게끔 만들어주는 GUI 기반 응용프로그램이다.

 

클라이언트와 웹은 Internet이라는 공간에서 서로 상호작용하게 되는데

Internet에서 웹페이지에 접속하고, 이메일을 보내고하는 것이다.

그런 Internet에서 웹브라우저가 하는 일은 대신 서버에 요청하고, 응답받은 내용을 클라이언트에게 보여준다.

좀 더 자세히 말해 클라이언트가 웹브라우저를 통해 naver.com을 요청하면

웹브라우저는 클라이언트에서 방화벽을 지나 Internet으로 나아간뒤, DNS 서버에서 해당 도메인의 IP를 찾고, 그 IP로 가서 naver.com의 응답을 받는다. 그리고 클라이언트로 되돌아 가는 것이다.

웹브라우저는 사용자가 일일이 작업해줄 필요가 없어서 매우 편리하게 사용된다.

 

대표적으로 이용하는 웹브라우저는

구글의 Chrome, 모질라의 Firefox, 마이크로소프트의 Internet Explorer가 있고

내가 사용하는 웹브라우저는 네이버의 NaverWhale이다.

각각의 웹브라우저는 기본적으로 서버와 통신하는 일 외에도 각각의 독창적인 기능들이 있다.

 

DNS란?
더보기

DNS Domain Name System으로 naver.com같이 사람이 기억하기 쉽게 만들어 놓은 문자를 IP로 변환시켜주는 역할을 한다.

앞서 들었던 예시에서 웹브라우저가 naver.com이라는 도메인을 가지고 DNS 서버에 그 도메인의 IP를 찾는다고 했는데

그곳에서 쓰였던 DNS 서버가 도메인을 IP로 변환시켜주는 DNS를 해주는 서버이다.

 

패킷 전송 과정
더보기

패킷은 포괄적으로 네트워크에서 데이터를 주고받을때 쓰는 단위이다.

패킷이 전송될때에는 Encapsulation을 거치고, 받을때에는 Decapsulation을 거치게 된다.

Encapsulation은 간단히 말해 OSI 7 Layer의 7계층에서 1계층으로 Header정보를 씌워주고
Decapsulation은 간단히 말해 OSI 7 Layer의 1계층에서 7계층으로 Header정보를 풀어준다.

그럼 이렇게 Encapsulation된 패킷이 어디로 가는가?

1) 우선 외부로 가기 위해서 라우터에게 간다.

2) 해당 라우터는 그 패킷이 오류가 있나 없나 검사한다.

3) 라우터는 오류가 없으면 목적지의 IP주소를 확인한다.

4) 목적지로 가기위해 필요한 다음 장비의 주소를 알아내고 전송한다.

이 과정을 반복해서 패킷이 전송된다.

 

POST요청과 GET 요청
더보기

POST와 GET은 Web의 데이터를 데이터베이스로 전달하는 사용하는 방식이다.

POST 방식은 데이터를 숨겨서 전달하고,

GET 방식은 데이터를 URL뒤에 ?를 붙여서 공개해서 전달한다.

 

그러면 POST와 GET방식에는 무슨 차이점이 있을까?

많은 차이점이 있겠지만 간단히 설명하자면

1) URL 복사에 차이가 있다.

Youtube나 Tistory의 URL을 복사해서 올려야 하는데

POST 방식으로는 데이터를 숨기기 떄문에 이가 불가능하다.

그래서 게시판이나, 링크가 필요한 곳은 GET방식을 쓴다.

2) 굳이 필요없을땐 POST 방식

위와 같은 상황이 아닌 경우에는 POST방식을 사용한다.

예를 들어 지금 내가 쓰고있는 글은 굳이 GET방식을 사용해서 저장할 필요가 없다.

예초에 GET방식은 POST방식 만큼 많은 양의 데이터를 저장할 수 없다.

글을 작성할 때에는 성능면에서라든지, 효율면에서라든지 POST방식이 더 우세하다.

 

POST방식과 GET방식과 관련된 사건으로는 Google의 Accelerator사건이 있다.