728x90
반응형

📖 본문

1. 사용자가 URL 입력

브라우저 주소창에 https://example.com 을 입력하면, 브라우저는 "이 주소의 컴퓨터(IP)를 찾아야겠다!" 라고 생각합니다.


2. DNS 조회

도메인(example.com)은 그냥 이름일 뿐, 실제로는 IP 주소를 알아야 서버를 찾을 수 있습니다.

  • 브라우저 → DNS 서버에 “example.com IP 뭐야?”
  • DNS 서버 → “192.0.2.1 입니다!”

3. TCP 연결 (3-Way Handshake)

브라우저와 서버가 "안전하게 데이터 주고받자" 하고 약속을 맺습니다.

  1. 브라우저 → 서버: “나 연결할래(SYN)”
  2. 서버 → 브라우저: “좋아, 연결하자(SYN+ACK)”
  3. 브라우저 → 서버: “알았어(ACK)”

4. HTTP 요청 보내기

브라우저가 서버로 HTTP Request를 전송합니다.

  • 요청 방식: GET / POST
  • 요청 헤더: 브라우저 정보, 쿠키, 데이터 형식 등
  • 요청 바디(POST일 경우): 폼 데이터, JSON 등

5. 서버 처리

서버는 요청을 받아 다음 작업을 합니다.

  1. URL 분석 → 라우터로 경로 매칭
  2. 필요한 데이터(DB 조회 등) 준비
  3. HTML, JSON, 이미지 등 응답 데이터 생성

6. HTTP 응답 보내기

서버는 브라우저에 HTTP Response를 보냅니다.

  • 응답 상태 코드: 200(성공), 404(없음), 500(오류) 등
  • 응답 헤더: 데이터 타입(Content-Type), 길이, 캐시 정보 등
  • 응답 바디: HTML, CSS, JS, 이미지 등 실제 화면에 필요한 데이터

7. 브라우저 렌더링

브라우저는 받은 HTML을 해석하고,

  • CSS 적용
  • JS 실행
  • 이미지 로드
    를 거쳐 최종 화면을 사용자에게 보여줍니다.

🔍 전체 흐름 그림

[사용자]
   ↓ URL 입력
[브라우저]
   ↓ DNS 조회
[DNS 서버]
   ↓ IP 전달
[브라우저]
   ↓ TCP 연결
[서버]
   ↓ 요청 처리
[브라우저]
   ↓ 렌더링
[사용자]

단계                                                                                                            설명

URL 입력 브라우저가 요청 준비
DNS 조회 도메인을 IP로 변환
TCP 연결 안전한 데이터 통신 준비
HTTP 요청 서버로 데이터 요청
서버 처리 요청 분석, 데이터 생성
HTTP 응답 브라우저로 결과 전송
렌더링 화면 표시
728x90
반응형
728x90
반응형

📖 본문

1. URL 입력 후 서버로 요청이 가는 과정

브라우저 주소창에 URL을 입력하면, 사실 단순히 “주소”만 보낸 게 아니라 서버에 HTTP Method라는 방식으로 요청을 보낸 것입니다.
HTTP Method는 여러 종류가 있지만, 가장 기본이자 많이 쓰이는 건 GETPOST입니다.


2. GET 방식 — "책 빌려오는 방법"

📌 개념
필요한 정보를 가져오기 위한 요청 방식입니다.
마치 도서관에서 책을 빌려오는 것과 비슷하죠.

📝 특징

  • URL에 데이터가 포함됩니다.
https://example.com/login?id=abcd&pw=kor
  • → ? 뒤의 id와 pw가 서버로 전달됩니다.
  • 데이터가 Header에 포함되어 전송됩니다.
  • URL에 데이터가 노출 → 보안에 취약
  • 캐싱 가능 (속도 향상, 즐겨찾기 가능)
  • 데이터 전송 길이 제한 존재 (브라우저 제한)
  • 바디(Body)는 보통 비어 있음

⚠️ 주의
아이디나 비밀번호 같이 민감한 정보는 절대 GET으로 보내면 안 됩니다.


3. POST 방식 — "편지 봉투 전달하기"

📌 개념
데이터를 서버로 제출하여 추가, 수정하는 방식입니다.

📝 특징

  • 데이터는 Body에 포함되어 전송 → URL에 안 보임
  • 기본적으로 보안이 GET보다 나음 (하지만 암호화 필요)
  • 캐싱 불가
  • 길이 제한 없음 (하지만 Time Out 존재)
  • Content-Type 헤더로 데이터 형식 명시 필요
  • 쿼리스트링 뿐 아니라 폼 데이터, 파일 전송 가능

💡 예시
로그인 폼, 회원가입, 게시글 작성 같은 데이터 입력 기능


4. 캐싱(Caching)이란?

한 번 불러온 데이터를 임시 저장해 두었다가, 다시 요청할 때 더 빠르게 가져오는 기술입니다.
예: 이미지, CSS, JS 파일을 캐싱하면 페이지 로딩 속도가 빨라집니다.


📌 정리 표

구분                                                                        GET                                                             POST
데이터 위치 URL Body
보안성 낮음 높음(기본)
캐싱 가능 불가능
전송 길이 제한 있음 제한 없음
사용 예시 검색, 조회 로그인, 등록, 수정
 

 

728x90
반응형

+ Recent posts