본문 바로가기

Web/Web

[Web] 06. HTTP 프로토콜 동작 방식

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 파일이 포함된다.