
아래의 상기 내용은
"혼자 공부하는 네트워크"의 도서 내용과 인터넷의 내용을 실습 및 정리한 글입니다.
1.HTTP(Hypertext Transfer Protocol)
1)정의
-응용계층에서 정보를 주고받는 데 사용되는 프로토콜.
2.HTTP의 특성
1)요청-응답 기반 프로토콜
-<클라이언트,서버> 구조 기반의 <요청,응답> 프로토콜이다.
2)미디어 독립적 프로토콜
-클라이언트는 HTTP 요청 메시지를 통해 서버의 자원을 요청할 수 있고 서버는 HTTP 응답 메시지로
요청받은 자원에 대해 응답할 수 있다. HTTP는 주고받을 자원의 특성과 무관하게 다양한 종류의 자원을
받을 수 있다.
-HTTP에서 메시지로 주고받는 자원의 종류를 미디어 타입(media type)이라고 하며 MIME 타입(Multipurpose Internet Mail Extensions Type)타입이라고도 한다.
3)스테이트리스 프로토콜
-HTTP는 상태를 유지하지 않는 스테이트리스(stateless) 프로토콜. 이는 서버가 요청을 보낸 클라이언트와
관련된 상태를 기억하지 않는다는 의미이다.
-클라이언트의 모든 Http 요청은 기본적으로 독립적인 요청으로 간주된다.
-HTTP는 상대적으로 많은 클라이언트와 통신을 하고 클라이언트와의 상태 정보를 기록하지 않아 부담이
적을 수 있고 클라이언트와 서버 간의 관계성이 없기 때문에 클라이언트의 요청을 다른 서버가 처리 할 수
있기에 클라-서버 간의 종속성이 없다.
-HTTP가 설계 목표에 확장성(Scalability)과 견고성(robustness)이 있다.
-특정 클라이언트가 특정 서버에 종속되지 않으므로 서버의 추가나 문제 발생시 대처가 용이하기에 확장성
이 좋고 서버 중 하나에 문제가 생겨도 쉽게 다른 서버로 대체가 가능하기에 견고성이 높다.
4)지속 연결 프로토콜
-HTTP는 지속해서 발전 중인 프로토콜인 만큼 여러버전이 존재한다.
-현재 많이 사용되는 버전인 HTTP 1.1과 HTTP 2.0이 존재한다.
-기본적으로 HTTP는 TCP상에서 동작하지만 비연결성 프로토콜이다.
-초기의 HTTP는 쓰리 핸드 쉐이크를 통해 TCP연결을 수립한후, 요청에 대한 응답을 받으면 연결을
종료하는 방식으로 동작하였다. 이러한 방식으 비지속 연결이라 한다.
-HTTP 1.1 버전 이상은 지속 연결(persistent connection)이라는 기술을 제공하는데 다른 말로 킵 얼라이브
(keep arrive)라고 부른다. 하나의 TCP 연결상에서 여러 개의 요청-응답을 주고받을 수 있는 기술이다.
3.HTTP 메시지 구조
1)구조
-HTTP는 시작라인,필드 라인, 메시지 본문으로 이루어져 있다. 필드 라인은 없거나 여러 개가 있을 수 있고
메시지 본문은 없을 수 있습니다. 또한 필드 라인과 메시지 본문 사이에는 줄 바꿈이 존재한다.

2)시작라인(start-line)
-시작 라인 실행되어야 할 요청, 또은 요청 수행에 대한 성공 또는 실패 등의 정보가 기록된 정보.
-HTTP 메시지는 요청 메시지와 응답 메시지가 존재하고 요청메시지면 요청 라인, 응답 메시지면
상태 라인이 된다.
-요청 라인(request-line)은 형식은 다음과 같다.

-상태 라인(status-line)은 형식은 다음과 같다.

2)_2메서드(method)
-클라이언트가 서버의 자원에 대해 수행할 작업의 종류
2)_3요청대상(request-target)
-HTTP 요청을 보낼 서버의 자원을 의미한다.
-보통 쿼리가 포함된 URI의 경로가 명시된다.
-예를 들어 "http://www.example.com/hello?q=world"로 요청을 보낼 경우 요청대상은 "/hello?q=wolrd"가
된다.
2)_4HTTP 버전(HTTP-version)
-이름 그대로 사용된 HTTP 버전을 의미한다.
2)_5상태 코드(status code)
-요청에 대한 결과를 나타낸다.
-예를 들어 '상태코드 200'은 요청이 성공적으로 수행되었음을 나타낸다.
2)_6이유 구문(reason phase)
-상태코드에 대한 문자열 형태의 설명을 의미한다.
-예를 들어 '상태코드 400 Not Found'은 요청한 자원이 존재하지 않음을 나타낸다.
3)필드 라인(Field line)
-HTTP 헤더(HTTP header)가 명시되는 라인, 헤더 라인(header line)이라고도 한다.
-HTTP 헤더란 HTTP 통신에 필요한 부가정보를 의미한다.
-필드라인에 명시되는 HTTP 헤더는 콜론(:)을 기준으로 헤더 이름(header-name)과 하나 이상의 헤더 값(header-value)으로 구성된다.
-HTTP 요청 혹은 응답 메시지에서 본문이 필요할 경우 메시지 본문(message-body)에 명시됩니다.
4.HTTP 메서드 종류

'네트워크 > 혼자 공부하는 네트워크' 카테고리의 다른 글
| 06-01 안정성을 위한 기술 (0) | 2024.08.26 |
|---|---|
| 05-03 HTTP 헤더와 HTTP 기반 기술 (0) | 2024.08.14 |
| 05-01 DNS와 자원 (0) | 2024.08.06 |
| 04-03 TCP의 오류,흐름,혼잡 제어 (0) | 2024.08.04 |
| 04-02 TCP와 UDP (0) | 2024.08.04 |