CS
  • CS-Study
  • database
    • B-Tree와 B+Tree
    • DB JOIN
    • DB Lock
    • DB 트래픽
    • DBCP (DB Connection Pool)
    • Flyway
    • Message Broker
    • MySQL InnoDB 스토리지 엔진
    • MySQL 엔진 아키텍처
    • RDB와 NoSQL
    • Redis
    • SQL Injection
    • 스키마 (Schema)
    • Table Scan과 Index Scan
    • Apache Kafka
    • Key
    • 뷰 (View)
    • 인덱스
    • 정규화
    • RDBMS, NoSQL의 클러스터링/리플리케이션 방식
    • 트랜잭션(Transaction)
    • 트랜잭션의 격리성(Transaction Isolation)
    • 프로시저와 트리거
    • DB 정규화 (Normalization)
  • etc
    • MSA
    • REST, REST API, RESTful
    • SOLID 원칙
    • TDD (Test-Driven Development)
    • 서버리스
    • 컨테이너와 도커
  • java
    • Collections
    • Garbage Collection
    • Generic
    • JDBC
    • Java Virtual Machine(JVM)
    • Java Thread
    • Java8 vs Java11 vs Java17
    • 객체지향 프로그래밍 OOP (Object Oriented Programing)
    • Optional
    • RxJava(Reactive Programming)
    • 문자열(String & StringBuffer & StringBuilder)
    • Synchronized
    • Virtual Thread
    • Wrapper Class
    • Equals()와 Hashcode()
    • final
    • Jackson 라이브러리
    • 리플렉션(Reflection)
    • static class와 static method
    • 스트림(Stream)과 람다(Lambda)
    • 스프링 프레임워크에서 사용되는 디자인 패턴
    • 예외처리(Exception)
    • Java Annotation
    • 추상클래스와 인터페이스
  • network
    • 3-way handshake
    • 4-way Handshake
    • DHCP(Dynamic Host Configuration Protocol)
    • DMZ(DeMilitarized Zone)
    • DNS(Domain Name System)
    • HTTP Method
    • HTTP 버전 비교
    • HTTP status code
    • HTTP
    • IP Address
    • Mutiplexing & Demultiplexing
    • OSI 7계층
    • SOP, CORS
    • TCP와 UDP
    • XSS와 CSRF
    • gRPC
    • Stateless와 Connectionless
    • 라우터 Router
    • 로드밸런서(Load Balancer)
    • 브라우저에 URL입력시 네트워크 상 일어나는 일
    • 서브넷 마스크, 게이트웨이
    • 웹 소켓과 소켓 통신
    • 쿠키(Cookie)와 세션(Session)
  • operating-system
    • IPC (Inter Process Communication)
    • 인터럽트
    • TLB
    • 스레싱 Thrashing
    • Thread Pool, Fork-Join
    • Thread Safe
    • 프로세스
    • 가상 메모리
    • 데드락 (DeadLock, 교착 상태)
    • 동기/비동기 & 블로킹/논블록킹
    • 동기화(Synchronization)
    • 메모리 할당과 단편화
    • 뮤텍스와 세마포어, 모니터
    • 세그먼테이션과 페이징
    • 운영체제
    • 캐시 메모리
    • Context switching(문맥 교환)
    • 컴파일
    • 파일 시스템
    • 페이지 교체 알고리즘(Page Replacement Algorithm)
    • 프로세서 스케줄링 알고리즘
    • 프로세스 주소 공간
  • spring
    • @Transactional
    • AOP(Aspect-Oriented Programming)
    • DTO, DAO, VO, Entity
    • DispatcherServlet
    • Hibernate, JPA, Spring Data JPA
    • Ioc와 DI
    • JPA 연관관계 맵핑
    • N+1 Problem
    • ORM
    • Persistence Context
    • SQL Mapper vs ORM vs QueryBuilder
    • Servlet Filter와 Spring Interceptor
    • Servlet
    • Spring MVC와 Spring Boot
    • Tomcat
    • WebFlux
Powered by GitBook
On this page
  • 1. 브라우저에 URL 입력
  • URI(Uniform Resource Identifier, 통합 자원 식별자)
  • URL(Uniform Resource Locator)
  • URN(Uniform Resource Name)
  • 2. 입력한 URL의 IP 주소를 찾기 위해 DNS 이용
  • DNS 작동 방식 참고
  • 3. 브라우저와 서버의 연결 (TCP connection)
  • 4. 브라우저가 웹 서버에 HTTP 요청
  • 5. 요청에 대한 서버의 응답
  • 6. 브라우저는 HTML content를 보여줌
  1. network

브라우저에 URL입력시 네트워크 상 일어나는 일

Previous로드밸런서(Load Balancer)Next서브넷 마스크, 게이트웨이

Last updated 11 months ago

브라우저에 www.github.com 입력시 일어나는 일

1. 브라우저에 URL 입력

  • 핸들링 인풋 진행

    • 브라우저 프로세스 안의 ui스레드가 입력된 텍스트 값 판단

    • Search Query 일 경우, 검색이 되도록 함(크롬 브라우저 → 구글 검색 엔진)

    • URL 일 경우, URL값을 네트워크 스레드에게 전달할 준비를 함

  • URI, URL, URN

URI(Uniform Resource Identifier, 통합 자원 식별자)

  • 인터넷 자원을 식별할 수 있는, 하나의 리소스를 가르키는 문자열

    • 이때 리소스는 HTTP와 같은 프로토콜에서 요청한 대상

  • URI의 하위개념으로 URL, URN 존재

URL(Uniform Resource Locator)

  • 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타냄

  • FTP, SMTP등 다른 프로토콜에서 사용 가능

URN(Uniform Resource Name)

  • URI의 표준 포맷중 하나로 이름으로 리소스를 특정하는 URI

  • 리소스의 name을 가리키는데 사용

    • http와같은 프로토콜을 제외함

  • 특징

    • 리소스를 영구적이고 유일하게 식별할 수 있는 URI

    • 리소스 접근방법과 웹 상의 위치가 표기되지 않음

    • 리소스 자체에 부여된 영구적이고 유일한 이름이며 변하지 않음

    • 실제 자원을 찾기 위해선 URN을 URL로 변환해 이용

URL과 URI의 차이점

  • URL은 어떻게 리소스를 얻을 것이고 어디에서 가져와야하는지 명시하는 URI

  • URN은 리소스를 어떻게 접근할 것인지 명시하지 않고 경로와 리소스 자체를 특정하는 것을 목표로하는 URI

2. 입력한 URL의 IP 주소를 찾기 위해 DNS 이용

  1. 캐시의 DNS 기록 확인

  2. 캐시에 없을 경우 DNS 쿼리 진행

3. 브라우저와 서버의 연결 (TCP connection)

  • 인터넷 프로토콜을 이용해 브라우저와 서버 연결

  • 웹 사이트의 경우 HTTP요청에 일반적으로 TCP연결 진행

4. 브라우저가 웹 서버에 HTTP 요청

  • TCP연결 후, 데이터 전송

5. 요청에 대한 서버의 응답

  • 서버는 요청을 처리하고 response 생성

6. 브라우저는 HTML content를 보여줌

  • 브라우저는 HTML content를 단계적으로 보여줌

  • HTML 스켈레톤 렌더링 → HTML tag체크 후 추가 필요 요소(이미지, CSS, js파일..) Get 요청 → 정적파일 캐싱 → www.github.com 화면 보임

인터넷의 모든 URL에는 고유한 가 할당 됨

를 통해 변환된 도메인 이름의 IP 주소를 찾음

을 통한 TCP connection 완성

서버가 를 보냄

IP 주소
3-way handshake
HTTP response
DNS
DNS 작동 방식 참고