🖥 웹 동작 방식

2024. 5. 27. 13:43· CS/🖥 네트워크
목차
  1. 🩹 Naver가 보이는게 당연???
  2. 🩹 Web 동작의 원리
  3. 🩹 용어 정리
  4. DNS 
  5. TCP / IP

🩹 Naver가 보이는게 당연???

우리가 Naver를 클릭하면 자연스럽게 보여지는 화면은 항상 당연하다고 생각하게 된다. 때문에 CS를 공부할때도 생각보다 당황하게 되는 주제 중 하나이다. 왜냐하면 늘 당연하고 자연스럽다고 생각한것에 대한 과정을 막상 바라보면 굉장히 복잡하고 생각보다 어렵기때문이다. 그래서 한번 알아보고자 한다.

 

🩹 Web 동작의 원리

1 & 2. 사용자가 웹 브라우저를 URL 입력을 통해 검색한다 사실 이는 2번의 과정과도 같다.

3. 사용자가 입력한 URL 주소 중에서 도메인 네임 부분을 DNS 서버에서 검색한다

4. DNS 서버에서 해당 도메인 네임에 해당하는 IP주소를 URL과 함께 전달한다.

5 & 6. 웹 페이지의 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용해서 HTTP 요청 메세지를 생성한다. 이렇게 생성된 HTTP 요청메세지는 TCP 프로토콜을 사용해서 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송된다.

7. 도착한 HTTP 요청 메세지는 HTTP 프로토콜을 사용해서 웹 페이지 URL 정보로 변환된다

8. 웹 서버는 도착한 URL 정보에 해당하는 데이터를 검색한다

9 & 10. 검색된 웹 페이지 데이터는 또 다시 HTTP 프로토콜을 사용해서 HTTP 응답 메세지를 생성하고 생성된 응답 메세지는 TCP 프로토콜을 사용해서 인터넷을 거쳐 원해 컴퓨터로 전송된다.

11. 도착한 HTTP 응답은 HTTP 프로토콜을 사용해서 웹 페이지 데이터로 변환된다

12. 변환된 웹 페이지 데이터는 웹 브라우저에 의해 출력되고 사용자가 비로소 볼 수 있게 된다.

 

🩹 용어 정리

가볍게 알아보고자 정리하는 용어이다. 추후 자세히 알아보는것을 적극 권장한다

DNS 

  • 도메인 이름과 IP주소를 매핑하기 위한 시스템이다
  • 사용자가 도메인 (e.g. naver, google)을 입력하면 해당 도메인의 이름을 가진 IP 주소를 찾기 위해 DNS 서버에 요청한다
  • DNS 서버는 요청된 도메인 이름에 대한 IP 주소를 찾고 확인하며 정보를 갖고 있지 않으면 다른 DNS 서버에서도 찾아 확인해서 IP 주소를 응답에 담아 보낸다

 

TCP / IP

TCP(전송 제어 규약)과 IP(인터넷 규약)은 데이터를 전송하기 위한 프로토콜

  • TCP
    • IP 프로토콜을 기반으로 하여, 데이터를 안정적으로 전송하기 위한 프로토콜이다.
    • 데이터를 전송하기 전에 연결을 맺고, 연결을 유지하고 데이터를 전송한다
  • IP
    • 컴퓨터간에 데이터를 전송하기 위한 프로토콜이다
    • 각 패킷에 출발지 IP주소와 목적지 IP주소를 포함하여 전송된다
    • 또한 패킷을 전달하는 경로를 결정하기 위한 라우팅 기능을 제공한다

'CS > 🖥 네트워크' 카테고리의 다른 글

🖥 TCP/IP 의 4계층  (0) 2024.05.27
🖥 OSI 7계층을 간단하게 알아보자  (0) 2024.05.27
🖥 쿠키(Cookie)와 세션(Session)  (2) 2023.09.26
🖥 HTTP 와 HTTPS  (0) 2023.09.25
🖥 지연(Delay)과 손실(Loss) - 처리, 큐잉, 전송, 전파 지연  (0) 2023.09.18
  1. 🩹 Naver가 보이는게 당연???
  2. 🩹 Web 동작의 원리
  3. 🩹 용어 정리
  4. DNS 
  5. TCP / IP
'CS/🖥 네트워크' 카테고리의 다른 글
  • 🖥 TCP/IP 의 4계층
  • 🖥 OSI 7계층을 간단하게 알아보자
  • 🖥 쿠키(Cookie)와 세션(Session)
  • 🖥 HTTP 와 HTTPS
늦은산책
늦은산책
늦은산책
중얼중얼블로그
늦은산책
전체
오늘
어제
  • 분류 전체보기
    • 오류 모음집
    • CS
      • 💾 자료구조
      • 👫🏼 정렬
      • 🖥 네트워크
      • 💻 운영체제
      • 💾 DB
      • 🌌 알고리즘
      • 📝 언어
    • 테스트
    • Git 초보에게 필요한 Git bash사용법
    • 프로젝트
      • 팀 프로젝트
      • 개인 프로젝트
      • 항해99 개인 프로젝트
      • 스위프 프로젝트(Lit Map)
    • Java
      • 객체 지향
    • Spring
      • 🌲 Spring
      • 👨‍💻 SpringSecurity
      • 🌵 JPA
    • MSA
      • MSA 강좌 - 이도원 강사님
    • Docker(도커)
    • 코딩테스트
      • 🧮 프로그래머스
      • 🎲 백준
    • 항해99
      • 🕛 1주차
      • 🕐 2주차
      • 🕑 3주차
      • 🕒 4주차
    • AWS
    • CI와CD

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 취리코
  • couchcoding
  • 카우치코딩_포트폴리오_멘토링
  • 개발자포토폴리오
  • 코딩테스트
  • 카우치코딩_팀프로젝트
  • 카우치코딩
  • 항해99
  • 개발자취업
  • 개발자취준
  • 개발자포트폴리오
  • 개발자이력서
  • 취업리부트코스

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
늦은산책
🖥 웹 동작 방식
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.