IT_susu

HTTP란? 본문

ETC

HTTP란?

고베베 2019. 9. 18. 19:54

HTTP : 하이퍼텍스트 전송 프로토콜. 하이퍼미디어(HTML, 미디어 등) 문서를 전송하기위한 애플리케이션 레이어 프로토콜.

웹 브라우저와 웹 서버간의 커뮤니케이션을 위해 디자인 되었음.

클라이언트가 요청을 생성하기 위한 연결을 연 다음 응답을 받을 때까지 대기하는 전통적인 클라이언트-서버 모델.

 

클라이언트(보통 브라우저) -> 메시지 전송 : request

서버 -> 메시지 전송 : response

 

 

웹은 계층적으로 설계되어 있는데 클라이언트와 서버 사이에 좀 더 많은 애들이 존재한다. 라우터, 모뎀 등은 네트워크와 전송 계층으로 숨겨지며 http는 애플리케이션 계층의 최상위이다. 따라서 네트워크 문제를 진단하는 것도 중요하지만 기본 레이어들은 http 명세와는 거의 관련이 없다.

 

클라이언트

사용자를 대신하여 동작하는 모든 도구. es) 브라우저, 검색로봇..

 

웹서버

클라이언트에 의한 요청에 대한 문서를 제공.

 

프록시

클라이언트와 서버 사이에 http 메시지를 중계하는 요소들.

  • 캐싱(예: 브라우저 캐시)
  • 필터링(바이러스 백신 스캔, 유해 컨텐츠 차단 기능)
  • 로드 밸런싱(여러 서버들이 서로 다른 요청을 처리하도록 허용)
  • 인증(다양한 리소스에 대한 접근 제어)
  • 로깅(이력 정보를 저장)

http 특징

  • 간단하다.
  • 확장 가능하다(http 헤더 사용)
  • 상태는 없지만 세션은 있다.
    • 상태가 없기에 동일한 연결 상에서 연속된 두 개의 요청을 처리할 때 문제가 된다. 하지만 쿠미를 사용해 세션을 만들면 가능하다.
  • 연결은 전송 계층에서 제어되므로 http 영역 밖이다. http는 연결이 필수는 아니지만 연결 기반인 TCP 표준에 의존.

 

http로 제어 가능한 것

  • 캐시
  • 동일한 origin으로 온 페이지만 웹페이지 전체 정보에 접근할 수 있다. http 헤더를 통해 완화 가능.
  • 인증 (http를 통해 유사한 헤더를 사용해 제공할 수도 있고 http 쿠키를 사용해 특정 세션을 설정하여 이루어질 수도 있다.)
  • 프록시와 터널링
  • 세션

 

http의 흐름

1) TCP 연결을 연다.

2) http 메시지를 전송한다.

3) 서버에 의해 전송된 응답을 읽는다.

4) 연결을 닫거나 다른 요청들을 위해 재사용한다.

 

http 메시지

1) 요청

http 메서드.

가져오려는 리소스의 경로 : 프로토콜(http://), 도메인, TCP포트 제외한 URL

http 프로토콜의 버전

서버에 대한 추가 정보를 전달하는 선택적 헤더들.

본문(body) - 선택사항

 

2) 응답

http 프로토콜의 버전

statusCode :상태코드 (요청의 성공 여부와 그 이유)

status message: 상태 케시지 (상태 코드의 짧은 설명 - 아무런 영향력 없음)

요청 헤더와 비슷한 http 헤더들

본문 : 가져온 리소스가 포함된 곳 - 선택사항

 

'ETC' 카테고리의 다른 글

HTTP header  (0) 2019.09.18
Comments