7계층 프로토콜 HTTP

썹스·2022년 8월 29일
0

네트워크

목록 보기
11/11

1. HTTP 프로토콜

HTTP(Hypertext Transfer Protocol)는 인터넷상에서 데이터를 주고받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다. 또한 www에서 쓰이는 핵심 프로토콜로 문서의 전송을 위해 쓰이며, 오늘날 거의 모든 웹 앱에서 사용되고 있다

HTTP 프로토콜은 Request/Response 동작에 기반하여 서비스 제공한다는 특징을 가지고 있다.

1-1. HTTP1.0

연결 수립, 동작, 연결 해제의 단순함이 특징이다. (하나의 URL은 하나의 TCP 연결)

하지만 HTTP 1.0은 단순 동작(연결 수립, 동작, 연결 해제)이 여러 번 반복되어 동신 부하 문제가 발생한다는 단점이 있다. (데이터 여러 개 받으려면 연결-데이터-해제를 여러 번 했어야함)

1-2. HTTP1.1

HTTP1.1은 연결의 지속성을 가지고 있기 때문에 HTTP 1.0은 단순 동작이 여러 번 반복되어 생기는 부하 문제가 없다. (HTTP는 기본적으로 TCP를 이용하여 통신하는데, HTTP 1.0은 TCP 세션을 유지하지 않고, HTTP 1.1은 TCP 세션을 유지한다.)

1-3. HTTP 요청 프로토콜의 구조

Request Line : 요청 대상을 가리키는 문자
Request Line의 구조는 {요청 타입}{공백}{URI}{공백}{HTTP 버전}으로 이루워져 있다.

메소드 종류 (요청 방식)설명
GETClient가 Server로부터 문서를 읽어오려 할 때 사용
HEADClient가 문서가 아닌 문서에 대한 특정 정보를 원할 경우 사용
POSTClient가 Server에게 어떤 정보를 전송할 때 사용
PUTClient가 Server에 특정 자원을 업로드할 떄 사용
PATCHPUT과 비슷함, 기존 파일에서 변경 사항만을 포함
COPY파일을 다른 위치로 복사하기 위해 사용
MOVE파일을 다른 위치로 이동하기 위해 사용
DELETEServer에서 문서를 제거하기 위해 사용
LINK문서에서 다른 위치로의 링크를 생성하기 위해 사용
UNLINKLINK Method에 의해 생성된 링크를 삭제하기 위해 사용
OPTIONClient가 Server에게 사용 가능한 옵션을 질의하기 위해 사용

GET과 POST를 제외한 대부분의 메소드는 보안 문제 때문에 사용 못 하도록 막는다.


Headers : HTTP 요청 프로토콜의 다양한 옵션이 들어가는 공간

일반 헤더
헤더 종류설명
Content-Length메시지 바디 길이를 나타낼 때 쓰인다.
Content-Type메시지 바디에 들어있는 컨텐츠 종류


요청 헤더
헤더 종류설명
Cookie서버로부터 받은 쿠키를 다시 서버에게 보내주는 역할을 한다.
Host요청된 URL에 나타난 호스트명을 상세하게 표시
User-AgentClient Program에 대한 식별 가능 정보를 제공


응답 헤더
헤더 종류설명
Server사용하고 있는 웹서버의 소프트웨어에 대한 정보를 포함
Set-Cookie쿠키를 생성하고 브라우저에 보낼 때 사용, 해당 쿠키 값을 브라우저가 서버에게 다시 보낼 때 사용한다.

Body : 보내려는 데이터 (Body는 없을 수도 있다.)


1-3. HTTP 응답 프로토콜의 구조

Status Line : 요청 대상을 가리키는 문자
Status Line의 구조는 {HTTP 버전}{공백}{상태 코드}{공백}{상태 문구}으로 이루워져 있다.


상태 코드는 아래와 같다.

상태 코드 종류상태 문구설명
200OKClient의 요청이 성공했다는 것을 나타낸다.
403ForbiddenClient가 권한이 없는 페이지를 요청했을 때
404Not FoundClient가 서버에 없는 페이지를 요청했을 때
500Internal Server ErrorServer의 일부가 멈췄거나 설정 오류가 발생
503Service Unavailable최대 Session 수를 초과했을 때

Headers : HTTP 응답 프로토콜의 다양한 옵션이 들어가는 공간

일반 헤더
헤더 종류설명
Content-Length메시지 바디 길이를 나타낼 때 쓰인다.
Content-Type메시지 바디에 들어있는 컨텐츠 종류


요청 헤더
헤더 종류설명
Cookie서버로부터 받은 쿠키를 다시 서버에게 보내주는 역할을 한다.
Host요청된 URL에 나타난 호스트명을 상세하게 표시
User-AgentClient Program에 대한 식별 가능 정보를 제공


응답 헤더
헤더 종류설명
Server사용하고 있는 웹서버의 소프트웨어에 대한 정보를 포함
Set-Cookie쿠키를 생성하고 브라우저에 보낼 때 사용, 해당 쿠키 값을 브라우저가 서버에게 다시 보낼 때 사용한다.


Reference

따라하면서 배우는 IT_네트워크 기초(개정판)

profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글