식당에서 음식을 서빙하는 것처럼, 서버는 클라이언트에게 데이터를 전달한다.
반대로 클라이언트는 서버에게 정보를 요청하여 이를 받아가는 역할을 한다.
클라이언트 측 개발은 주로 프론트엔드라고 하며, 사용자와의 직접적인 상호작용을 담당한다.
서버 측에서는 백엔드가 데이터베이스 관리, API 처리, 서버 로직 구현 등을 맡아 서버의 동작을 담당한다.
이러한 서버와 클라이언트 간의 상호작용은 IP 주소를 통해 서버를 식별하고, DNS를 사용해 도메인 이름을 IP로 변환하여 실제 서버에 연결한 후, URL을 통해 요청하는 리소스를 지정하는 방식으로 이루어진다.
IP와 DNS
IP(Internet Protocol)
IP는 컴퓨터나 서버의 주소로, 전화번호와 같은 역할을 한다.
우리가 어떤 서버에게 요청을 보내고 싶으면 IP 주소를 사용하면 된다. ex) 구글의 IP는 142.250.76.142
DNS(Domain Name System)
숫자로 된 IP 주소를 기억하기 어려우므로, 도메인을 통해 쉽게 접근할 수 있도록 DNS가 등장했다.
DNS는 도메인을 입력했을 때 해당 IP 주소를 찾아 연결해 주는 시스템이다.
Domain(도메인)
: 도메인은 google.com, naver.com과 같은 문자 주소를 말하며, 주소록 같은 역할을 한다.
: 세부적으로는 3가지 영역으로 나뉜다
- 서브도메인: www (World Wide Web) 외에도 다양한 이름 가능 (mail.google.com / blog.example.com)
- 2단계 도메인: 도메인 이름의 핵심적인 부분으로, 일반적으로기업, 개인, 단체 이름 ( google, naver, tistory 등)
- 최상위 도메인 (TLD): 도메인의 마지막 부분으로 사이트의 성격이나 국가를 나타낸다
( .com: 영리 단체 / .org: 비영리 단체 / .ac.kr: 학술 기관)
DNS의 동작 과정
- 사용자가 www.google.com을 입력.
- DNS 서버가 해당 도메인의 IP 주소를 찾아 반환.
- 클라이언트는 반환된 IP 주소로 서버에 요청을 보냄.
- 서버가 요청에 응답.
URL
URL(Uniform Resource Locator)
인터넷 상의 리소스를 가리키는 표준화된 주소 체계
URL의 5가지 구성요소
- Scheme (스킴):
- URL의 시작부분에 위치하며, 서버와 어떤 방식으로 통신할지 명시하는 부분.
- 프로토콜(리소스에 접근하기 위한 방법)을 지정한다 : http, https (보안 강화), ftp (파일 전송)
- 스킴은 프로토콜을 정의하며, :// 와 함께 사용됩니다.
HTTP와 HTTPS
HTTP (HyperText Transfer Protocol) : 데이터를 암호화하지 않으며, 보안이 취약.
HTTPS (HTTP Secure) : SSL/TLS 암호화를 통해 데이터 보안을 강화. 브라우저에 자물쇠 아이콘으로 표시됨.
- Host (호스트):
- URL의 스킴 뒤에 오는 부분으로, 웹사이트의 주소나 서버의 주소 를 나타낸다.
- 기본적으로 도메인 이름이나 IP 주소로 나타낸다.
- 포트 번호가 명시되지 않으면, 기본 포트가 사용된다.
- Path (패스):
- 서버에서 요청하는 리소스의 경로를 나타낸다. ( /about, /products/item123.)
- URL에서 경로는 서버의 파일 시스템 구조를 반영하며, 요청한 리소스의 위치를 지정한다.
- Query (쿼리):
- 서버에 추가 정보를 전달하는 부분
- 형식: ?key=value&key2=value2.
- 예: https://example.com/search?q=book&type=pdf.
- q=book: 검색 키워드.
- type=pdf: 파일 형식.
- Anchor (앵커):
- 웹사이트 내 특정 섹션으로 이동하도록 하는 요소.
- 형식: #section1.
- 예: https://example.com/page#section1은 HTML 요소 <div id="section1">로 이동.
'IT 알쓸신잡' 카테고리의 다른 글
프레임워크와 라이브러리의 차이점 (0) | 2025.01.01 |
---|---|
동기 I/O와 비동기 I/O가 무엇일까? (2) | 2025.01.01 |
SEO가 무엇인가? (7) | 2024.12.28 |
view 엔진이 무엇인가 (1) | 2024.12.27 |
FE 개발자가 무엇인가 (2) | 2024.12.27 |