웹 액세스의 흐름
- 유저가 웹 브라우저에 URL을 입력한다.
- URL로 지정한 웹 서버에게 HTTP 요청을 송신한다.
- URL에는 호스트명이 지정되기 때문에 DNS 서버에 IP주소를 질의하여 알아낸 뒤 TCP 연결이 맺어지고 HTTP 요청이 웹 서버로 송신된다.
- 웹 서버가 HTTP 요청을 해석한다.
- 웹 서버가 요청받은 파일을 웹 브라우저에 돌려보낸다.
- 보통 이 파일은 HTML 파일에 해당한다.
- 웹 브라우저가 수신한 데이터를 해석해서 웹 브라우저상에 표시한다.
- 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 파일을 웹 브라우저에게 전송한다.
'CS > 네트워크' 카테고리의 다른 글
[네트워크] URI와 웹 브라우저 요청 흐름 (0) | 2023.02.05 |
---|---|
인터넷 네트워크 (IP, TCP/UDP, PORT, DNS) (0) | 2023.02.04 |
[네트워크] TCP와 UDP (0) | 2022.12.11 |
[네트워크] DNS의 구조 (0) | 2022.12.11 |
[네트워크] IP 주소란? (0) | 2022.12.11 |