CS/네트워크

[네트워크] 웹 액세스의 흐름, HTTP 프로토콜

연듀 2022. 12. 22. 21:16

 

웹 액세스의 흐름

 

  1. 유저가 웹 브라우저에 URL을 입력한다.
  2. URL로 지정한 웹 서버에게 HTTP 요청을 송신한다.
    • URL에는 호스트명이 지정되기 때문에 DNS 서버에 IP주소를 질의하여 알아낸 뒤 TCP 연결이 맺어지고 HTTP 요청이 웹 서버로 송신된다.
  3. 웹 서버가 HTTP 요청을 해석한다.
  4. 웹 서버가 요청받은 파일을 웹 브라우저에 돌려보낸다.
    • 보통 이 파일은 HTML 파일에 해당한다.
  5. 웹 브라우저가 수신한 데이터를 해석해서 웹 브라우저상에 표시한다.
  • HTML(HyperText Markup Language): 웹 사이트의 내용을 기술하기 위해 사용되는 언어
  • HTTP(HyperText Transfer Protocol): 웹 서버로부터 파일을 전송받기 위해 사용되는 프로토콜
  • URL(Uniform Resource Locator): 웹사이트의 주소

 

 

ex) https://yeoncoding.tistory.com/tag

https: 웹 브라우저가 웹 서버의 데이터에 접근하기 위한 프로토콜

yeoncoding.tistory.com: 호스트명

tag: 목적 데이터가 웹 서버 내의 어디에 있는지 나타내는 패스(path)

패스를 생략하면 자동으로 index.html로 간주된다.

 

 

정적 웹 페이지와 동적 웹 페이지

 

  • 정적 웹 페이지: 웹 서버 상에 미리 저장되어 있는 웹 페이지
  • 동적 웹 페이지: 웹 브라우저의 요청에 따라서 웹 서버가 자동으로 생성한 웹 페이지
    • 클라이언트 측의 정보나 입력한 파라미터 등이 URL에 포함
    • ex) 검색 결과 페이지, 장바구니 페이지

 

HTML(HyperText Markup Language)

 

하이퍼텍스트를 기술하기 위한 규칙이다.

문서의 구조나 스타일에 대한 규칙을 정한다. 스타일은 스타일시트로 분리하여 별도로 정의한다.

 

*하이퍼텍스트: 보통의 텍스트를 넘어선 기능을 가진 텍스트

*스타일시트: 문서의 레이아웃이나 폰트와 같이 웹 페이지 디자인을 정의한 것

 

 

HTTP(HyperText Transfer Protocol)

웹 서버의 HTML 파일을 웹 브라우저로 전송하기 위한 프로토콜

HTTP 프로토콜을 사용한 파일 전송은 HTTP 요청과 HTTP 응답을 주고받으며 이루어진다.

 

 

HTTP 요청

웹 브라우저가 웹 서버로 보내는 요청

요청 행, 메세지 헤더, 엔티티 바디로 나눠진다.

  • 요청 행
    • 메소드: 서버에 대한 요구 커맨드(GET, HEAD, POST, PUT)
    • URI: 요청 대상인 데이터
    • 버전: 웹 브라우저가 지원하는 HTTP의 버전
  • 메세지 헤더
    • 웹 브라우저의 종류나 버전, 데이터 형식 등의 정보
  • 엔티티 바디
    • 파일을 보낼 때 사용

 

HTTP 응답

웹 브라우저가 보낸 요청에 대해 웹서버가 반환하는 응답

상태 행, 메시지 헤더, 엔티티 바디로 나눠진다.

  • 상태 행
    • 버전: HTTP의 버전
    • 상태 코드: 웹 서버의 처리 결과를 나타내는 세자리 숫자
    • 설명문: 상태 코드의 의미를 나타낸 텍스트
  • 메시지 헤더: 데이터의 형식이나 업데이트된 날짜
  • 엔티티 바디: 웹 브라우저에 반환할 데이터

 

HTTP 쿠키

 

웹 서버가 웹 브라우저에 특정한 정보를 저장해두기 위한 시스템

접속 상태를 보존한 Stateful한(상태가 있는) 처리를 할 수 있게 해준다.

 

 

 

 

HTTP는 웹 서버의 HTML 파일을 웹 브라우저에게 전송하기 위한 프로토콜이다. 
웹 브라우저에 URL을 입력해 웹 서버에게 HTTP 요청을 송신하고, 웹서버가 이를 해석해 HTML 파일을 웹 브라우저에게 전송한다.