본문 바로가기
프로그래밍/네트워크

[네트워크] OSI 모델 7계층_HTTP 프로토콜

by 준보틱스 2024. 6. 25.

HTTP 프로토콜

※ 웹을 만들기 위해 사용되는 다양한 기술들

웹 서비스를 만들기 위해 다양한 기술들이 사용된다. 웹 표준이라고 불리는 HTML, Javascript, CSS는 프론트 엔드로 실행은 클라이언트 쪽에서 되지만, 서버 쪽에 저장된다. 이러한 데이터을 받아오는(웹 표준 데이터) 프로토콜을 HTTP 프로토콜이다. HTTPS는 HTTP에 보안 요소들을 추가한 프로토콜이다. ASP/ASP.NET, JSP, PHP 등은 벡엔드로 서버 쪽에서 실행되는 코드로 웹 서버 페이지를 만드는 기술들이다.

● HTTP 프로토콜의 특징

HyperText Transfer Protocol(하이퍼 텍스트 전송 프로토콜)로서, www에서 쓰이는 핵심 프로토콜로 문서의 전송을 위해 쓰인다. 오늘날 거의 모든 웹 애플리케이션에서 사용되고 있다. 음성, 화상 등 여러 종류의 데이터를 MIME로 정의하여 전송이 가능하다. HTTP의 특징은 Request / Response (요청/응답) 동작에 기반하여 서비스를 제공한다.

  • HTTP 1.0 특징 : "연결 수립, 동작, 연결 해제" 의 단순함이 특징, 하나의 URL은 하나의 TCP 연결, HTML 문서를 전송 받은 뒤 연결을 끊고 다시 연결하여 데이터를 전송한다.
  • HTTP 1.0 문제점 : 단순 동작(연결 수립, 동작, 연결 해제)이 반복되어 통신 부하 문제 발생

(HTTP/1.0)

위와 같이 HTTP 1.0의 문제점을 보완하기 위해 HTTP 1.1 버전이 만들어졌다. 요청하고 연결 종료하지 않고 요청하고 응답받고 이런 과정을 반복하고 마지막에 연결을 종료하는 방식이다.

 

(HTTP/1.1)

HTTP 요청 프로토콜

  • Request Line
HTTP 메소드 요청 방식
메소드 종류 설명
GET Client가 Server로부터 문서를 읽어오려 할 때 사용
HEAD Client가 문서가 아닌 문서에 대한 특정 정보를 원할 경우 사용
POST Client가 Server에게 어떤 정보를 전송할 때 사용

URI

- Uniform Resource Identifier, 인터넷 상에서 특정 자원(파일)을 나타내는 유일한 주소

- 구조 : scheme* ://host[:port][/path][?query] / ex. http ://IP주소 :포트* /폴더이름/파일이름

* scheme는 내가 요청하는 형식을 지정하는 것(ftp or http 처럼 7계층 프로토콜 형식 지정)

* IP주소는 도메인주소를 사용하고 컴퓨터가 자동으로 IP 주소로 바꿔준다. 포트번호는 지정해주지 않고 웹 브라우저 사용 시 80번 또는 443번 포트를 알아서 사용해준다.

  • Headers

여러가지 옵션들이 들어감

  • Body

어떤 데이터를 요청할 때 보내는 추가적인 데이터 등이 들어감

HTTP 응답 프로토콜

  • Status Line

상태 코드와 상태 문구는 하나의 쌍이다.

상태 코드
상태 코드 종류 설명
100 ~ 199 단순한 정보
200 ~ 299 Client의 요청이 성공
300 ~ 399 Client의 요청이 수행되지 않아 다른 URL로 재지정
400 ~ 499 Client의 요청이 불완전하여 다른 정보가 필요
500 ~ 599 Server의 오류를 만나거나 Client의 요청 수행 불가

 

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

HTTP 헤더 포맷

헤더 종류 설명
Content-Length 메세지 바디 길이를 나타낼 때 쓰인다
Content-Type 메세지 바디에 들어있는 컨텐츠 종류 (ex. HTML 문서는 text/html)
Cookie 서버로부터 받은 쿠키를 다시 서버에게 보내주는 역할을 한다
Host 요청된 URL에 나타난 호스트명을 상세하게 표시 (HTTP 1.1은 필수)
User-Agent Client Program에 대한 식별 가능 정보를 제공
Server 사용하고 있는 웹 서버의 소프트웨어에 대한 정보를 포함
Set-Cookie 쿠키를 생성하고 브라우저에 보낼 때 사용, 해당 쿠키 값을 브라우저가 서버에게 다시 보낼 때 사용한다.