Spring/네트워크, 웹관련지식

네트워크 :) 웹의 동작방식(HTTP, TCP/IP, DNS) 큰 그림, 패킷의 얕은 이해

euncheol kim 2022. 4. 26. 11:52

 

 

goal

웹의 동작 방식 큰 그림을 이해한다. (얕은 개념)
패킷을 이해한다. (얕은 개념)

 

1 ] 웹의 동작 방식


  • 서버의 범위 : Database도 데이터 제공자이기 때문에 Server라고 볼 수 있다.

[1] 웹 통신과 관련된 개념

용어 설명
인터넷 연결 웹에서 데이터를 보내고 받을 수 있게 해준다.
TCP / IP
(Transmission Control Protocol / Internet Protocal)
데이터가 어떻게 웹을 건너 여행을 해야하는지 정의하는 통신 규약
- TCP : 전송제어규약
- IP : 인터넷규약
DNS 서버 (Domain Name System Servers) 서버의 주소를 찾는 것
- 호스트의 도메인 이름((예)www.naver))을 호스트 주소((예)12,345.678.123)로 변환
- 또는 그 반대로 변환하여 수행하는 것
HTTP (Hypertext Transfer Protocol) 하이퍼텍스트 전송규약이라고 한다.
클라이언트와 서버가 서로 통신할 수 있게 하기위한 언어 정의
컴포넌트 파일 웹 사이트는 많은 파일의 연결로 만들어진다.
- 코드 파일 :: HTML. CSS, JavaScript 등
- 자원 :: 정적인 데이터 (이미지, 음악, 비디오 등)

 

[2] 동작방식

  • 클라이언트가 웹 주소를 입력한다.
  • 브라우저(크롬)DNS 서버로 가서 웹 사이트가 접근하고자 하는 서버의 진짜 주소(호스트 주소)를 찾는다.
  • 브라우저는 서버에게 웹 사이트의 사본을 클라이언트에게 보내달라는 HTTP 요청 메세지를 서버로 전송
    • 클라이언트-서버 사이에 전송된 모든 데이터는 TCP / IP 연결을 통해서 전송
    • TCP/IP에 대해서 포스팅 했지만 개념이 제대로 잡히지 않은 상태
  • 서버는 요청을 승인 후, 클라이언트에게 HTTP응답을 한다.
    • 포스팅 했지만, HTTP 응답에는 다양한 종류가 존재한다.
  • 응답이 승인되면(200) 서버는 데이터들을 데이터 패킷이라 불리는 작은 일련의 덩어리들로 브라우저에게 전송한다.
  • 브라우저는 패킷을 조립하여 사용자의 화면에 띄운다.

 

[3] 패킷의 존재이유

  • 패킷은 소금통 안에 있는 작은 소금 알맹이와 같다.
  • 효율성의 이유로 존재한다.
    • 데이터를 패킷으로 나누지 않고 한 번에 전송하게 된다면 한 사용자만 이용할 수 있게 된다.
    • 하지만, 패킷으로 나눈다면 동시에 여러 사용자가 이용이 가능하다.

※ 우선은 패킷의 내부적인 동작에 대해서 신경쓰지말자

 위에서는 소금 알맹이로 비교했지만, 모두가 이용한다는 관점에서 볼 때 계란 하나를 쪼개지 않고 혼자서 독식하는 것과 계란 하나를 여러개로 쪼개서 여러명이 먹는것과 같은거다.
(웹 관점에서는 이 패킷들이 합쳐져 우리가 원하는 데이터로 보여준다는 차이점이 있음은 상기해야한다.)