HTTP 프로토콜 동작 방식
HTTP 프로토콜 동작 방식을 요청과 응답으로 나누어서 살펴볼 것이다.
HTTP 요청 URL
사용자가 버튼을 누르거나 하이퍼링크를 클릭하면 브라우저는 HTTP 요청 URL을 서버에 전달한다.
http : // localhost : 8080 / BoardWeb / board / login.html
ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ
ⓐ | 프로토콜 | 서버에 파일을 요청할 때 사용 |
ⓑ | 프로토콜 구분자 | 프로토콜과 호스트 이름을 구분 |
ⓒ | 호스트(도메인) | 웹 서버가 설치된 컴퓨터 |
ⓓ | 포트 | 호스트 컴퓨터에서 8080 포트를 사용 |
ⓔ | 웹 애플리케이션 | 8080 포트를 사용하는 서버에서 실행되는 웹 어플리케이션 |
ⓕ | 디렉터리 | BoardWeb 애플리케이션의 board 디렉터리 |
ⓖ | 파일 | board 디렉터리에 있는 login.html 파일 |
HTTP 요청 프로토콜 구조
HTTP 요청 프로토콜은 start-line, message-header, message-body 로 구성된다.
1. start-line
start-line에는 요청과 관련된 세 가지 핵심 정보 (요청 방식, 요청 URI, 프로토콜/버전) 가 포함된다.
GET BoardWeb / board / login.html HTTP/1.1
요청방식 요청 URI 프로토콜 이름/버전
요청 방식이란 브라우저가 웹 서버에 요청을 전달하는 방식을 의미하며, 네 가지 방식이 있다.
GET | 조회 |
POST | 상세 |
PUT | 수정 |
DELETE | 삭제 |
2. message-header
message-header에는 키(key) : 값(value) 형태로 정보가 설정된다.
Host | 요청하려는 서버 호스트 이름과 포트 번호 |
User-agent | 브라우저 이름과 버전 정보 |
Accept | 브라우저가 처리할 수 있는 MIME Type 목록 |
Accept-charset | 브라우저가 처리할 수 있는 문자열 인코딩 목록 |
Accept-language | 브라우저가 처리할 수 있는 언어 목록 |
Accept-encoding | 브라우저가 처리할 수 있는 압축 방식 |
Cookie | key-value 형태의 쿠키 정보 |
Referer | 현재 요청하는 페이지를 방문하기 직적 페이지의 URL |
Accept-Encoding | 브라우저가 지원하는 인코딩 방식 |
Connection | 브라우저가 서버와의 연결을 처리하는 방식 |
3. message-body
message-body에는 사용자가 입력한 정보들이 설정되는데, start-line에서 설정된 요청 방식에 따라 정보가 달라진다.
- 요청 방식이 POST인 경우, message-body에 사용자가 입력한 값들이 설정된다.
- 요청 방식이 GET인 경우, message-body에 아무것도 설정되지 않는다.
HTTP 응답 프로토콜 구조
HTTP 응답 프로토콜은 status-line, message-header, message-body 로 구성된다.
1. status-line
status-line에는 HTTP 버전, 상태 코드, 상태 메시지가 설정된다.
상태 코드란 처리 결과를 코드로 표현한 것이고, 상태 메시지란 상태 코드의 의미를 쉽게 설명하기 위한 방법이다.
상태 코드 | 의미 | 상태 메시지 |
200 | 정상적인 처리 | OK |
403 | 브라우저가 요청한 파일에 접근할 수 없음 | Forbidden |
404 | 브라우저가 요청한 파일이 서버에 존재하지 않음 | Not Found |
405 | 브라우저가 요청한 방식을 서버에서 지원하지 않음 | Method Not Allowed |
500 | 브라우저가 요청한 기능을 서버가 처리하는 과정에서 예외가 발생함 | Internal Server Error |
2. message-header
대부분 서버가 브라우저에게 응답으로 전송하는 문서의 정보가 설정된다.
Date | 응답이 생성된 날짜와 시간 |
Server | 응답을 생성한 서버의 소프트웨어 정보 |
Content-Type | 응답 본문의 미디어 타입 |
Content-Length | 응답 본문의 길이 |
Set-Cookie | 클라이언트에 설정할 쿠키 정보 |
Last-Modified | 응답 본문이 마지막으로 수정된 날짜와 시간 |
ETag | 응답 본문의 고유 식별자 |
3. message-body
브라우저가 요청한 실질적인 문서가 포함된다.
만약 이미지 파일을 요청하면 이미지에 대한 바이너리 정보가, HTML 파일을 요청하면 HTML 파일이 포함된다.
'Web > Web' 카테고리의 다른 글
[Web] 05. HTTP 프로토콜이란? (0) | 2024.08.21 |
---|---|
[Web] 04. 웹 개발 환경 구축 - 라이브러리 설정 (0) | 2024.08.21 |
[Web] 03. 웹 개발 환경 구축 - 한글 깨짐 현상 (0) | 2024.08.21 |
[Web] 02. 웹 개발 환경 구축 - 웹 프로젝트 생성 및 실행 (0) | 2024.08.21 |
[Web] 01. 웹 개발 환경 구축 - 톰캣(Tomcat) 설치 (0) | 2024.08.21 |