1. 사용자가 www.google.com을 주소창에 입력
- 웹 브라우저는 캐싱된 DNS 기록들을 통해 해당 도메인 주소와 대응하는 IP주소를 확인
- 캐시 : 어떤 특징이 있는 데이터 하위 집합을 저장하는 고속 데이터 스토리지 계층, 이를 사용하면 해당 데이터에 대한 요청이 있을 경우 데이터의 기본 스토리지 위치에 액세스할 때보다 더 빠르게 요청을 처리할 수 있음
2. 브라우저는 DNS 서버로 가서 웹사이트가 있는 서버의 진짜 주소를 찾는다
- DNS(Domain Name System) : 도메인 이름과 IP주소를 매핑해주는 서버
3. 브라우저는 서버에게 웹사이트의 사본을 클라이언트에게 보내달라는 HTTP 요청 메세지를 서버로 전송
- HTTP(HyperText Transfer Protocol) : 하이퍼미디어 문서를 전송하기 위한 애플리케이션 계층 프로토콜, 클라이언트-서버 모델
4. 이 메세지, 그리고 클라이언트와 서버 사이에 전송된 모든 데이터는 TCP/IP 연결을 통해서 전송됨
- TCP/IP(Transmission Control Protocol / Internet Protocol) : 컴퓨터 사이의 통신 표준 및 네트워크의 상호 연결에 대한 자세한 규칙을 지정하는 프로토콜 스위트
5. DNS가 웹브라우저에게 구글 사이트의 IP주소를 응답
- "www.google.com"이라는 DNS쿼리가 오면 [RootDNS] → [.com DNS] → [.google DNS] → [.www DNS]과정을 거쳐 완벽한 주소를 찾아 IP주소를 매핑
6. 웹 브라우저가 웹 서버에게 IP주소를 이용해 html문서를 요청
- GET 요청을 통해 구글 웹페이지를 요구
7. 웹어플리케이션 서버와 데이터베이스에서 우선 웹페이지 작업을 처리
- WAS : 사용자의 컴퓨터나 장치에 웹어플리케이션을 수행해주는 미들웨어
8. 작업 처리 결과를 웹서버로 전송
- 웹서버 : 정적인 컨텐츠를 요청받아 처리함
- 웹애플리케이션서버 : 동적인 컨텐츠를 요청받아 처리함
9. 웹 서버는 웹브라우저에게 html문서 결과를 응답
- 1xx : 정보만 담긴 메세지
- 2xx : 요청에 대한 응답이 정상적으로 이루어짐
- 3xx : 클라이언트를 다른 URL로 리다이렉트
- 4xx : 클라이언트측 에러 발생
- 5xx : 서버측 에러 발생
10. 웹브라우저에서 내용물 출력
1. TCP/IP 4계층 모델
- 인터넷 프로토콜 스위트(Internet Protocol Suite) : 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합
- 애플리케이션 계층, 전송계층, 인터넷계층, 링크계층으로 나뉨
(1) 애플리케이션 계층 : 웹서비스, 이메일 등의 응용프로그램이 사용되는 프로토콜 계층, 실질적인 서비스를 사람들에게 제공
- FTP(File Transfer Protocol): 장치와 장치간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜
- SSH(Secure Shell) : 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
- HTTP(HyperText Transfer Protocol) : World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜
- SMTP(Simple Mail Transfer Protocol) : 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
- DNS(Domain Name System) : 도메인 이름과 IP주소를 매핑해주는 서버 / 예를 들어 "www.google.com"이라는 DNS쿼리가 오면 [RootDNS] → [.com DNS] → [.google DNS] → [.www DNS]과정을 거쳐 완벽한 주소를 찾아 IP주소를 매핑
(2) 전송계층 : 송신자와 수신자를 연결하는 통신 서비스를 제공, 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계 역할
- UDP : 순서를 보장하지 않고 단순히 데이터만 주고받는 '데이터그램 패킷 교환 방식' 사용
- TCP : 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 통해 신뢰성을 구축하고 수신 여부를 확인, '가상회선 패킷 교환 방식' 사용
- TCP 연결 성립 과정 : 신뢰성을 확보할 때 3-way handshake 작업 진행
- SYN(연결 요청 플래그) 단계 : 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보낸다. ISN은 새로운 TCP연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호를 말하며 장치마다 다르다
- SYN + ACK(응답 플래그) 단계 : 서버는 클라이언트의 SYN을 수행하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN+1을 보낸다
- ACK단계 : 클라이언트는 서버의 ISN+1한 값인 승인번호를 담아 ACK를 서버에 보낸다
- TCP는 위와 같은 과정이 있어 신뢰성이 있는 계층이라고 말하며, UDP는 이 과정이 없기 때문에 신뢰성이 없는 과정이라고 말한다
'자유게시판 > 스터디' 카테고리의 다른 글
[WEB] Restful API (2) | 2024.01.08 |
---|---|
[WEB] HTTP 메소드 (0) | 2024.01.02 |
[WEB] HTTP란? (0) | 2024.01.01 |
스터디 7주차 (0) | 2023.03.26 |
스터디 6주차 (0) | 2023.03.09 |