네트워크/혼자 공부하는 네트워크

05-02 HTTP

공부를하자 2024. 8. 13. 21:28

아래의 상기 내용은

"혼자 공부하는 네트워크" 도서 내용과 인터넷의 내용을 실습 정리한 글입니다.

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