본문 바로가기
어플리케이션

IT 용어 정리 - HTTP 란?

by 공대냥이 2018. 10. 19.
반응형

HTTP(Hyper Text Transfer Protocol)란?

 

웹 상에서 클라이언트와 서버 간에 통신을 위해 개발된 프로토콜

웹(Web)의 정식 명칭은 월드 와이드 웹(WWW: World Wide Web)으로 전 세계에 거미줄처럼 연결된 망이라는 뜻이다.

 

다양한 하이퍼 텍스트(Hyper Text) 문서들이 웹 상에서 서로 연결되어 있다. 하이퍼 텍스트 문서란 참조 혹은 링크를 통해 한 문서에서 다른 문서로 접근할 수 있는 문서를 말한다. 대표적인 하이퍼 텍스트 문서로 HTML이 있다.

 

주로 80/tcp 포트를 사용하며 1991년 초기버전(0.9)이 발표된 이후 1996년 1.0버전, 1999년 1.1버전이 발표되어 널리 사용되고 있다.

HTTP 통신은 클라이언트 요청(Request)과 서버 응답(Response)으로 이루어져 있다.

 

Keep-Alive HTTP

 

HTTP/1.1 버전부터 Connection 헤더에 Keep-Alive 옵션이 추가되었다, 이는 TCP 연결 상태를 웹 서버 설정에 따라 일정시간 지속시키는 옵션으로 한 번의 연결 이후에 요청/응답을 반복할 수 있다.

 

HTTP 응답 메시지를 분석해보면, 일반적으로 이미지, 스크립트 등 다수의 추가 자원 요청이 발생한다. 따라서 TCP 연결 설정 및 종료에 대한 부하를 줄이면서 효율적으로 클라이언트 요청을 처리하기 위해 연결 상태를 일정시간 유지하는 옵션이 추가되었다.

 

 

HTTP 응답 메시지 구조

 

1. 상태 라인(Status Line)은 한 행으로 구성되며 HTTP 버전, 상태 코트, 응답 구문으로 이루어져 있다.

 

2. 응답 헤어(Response Header)는 여러 헤더들로 구성되며 각각의 헤더 정보는 개행을 통해 구분한다. 

   > Content-Type : 메시지 바디의 데이터 형식을 설정한다.

   > Content-Length : 메시지 바디의 전체 크기를 설정한다 (단위 : 바이트)

 

3. 빈 라인(Empty Line)은 헤더의 끝을 의미하는 개행이다. 헤더의 개수가 가변이기 때문에 빈 라인을 통해 그 끝을 식별한다.

 

4. 응답 메시지 바디(Response Message Body)는 서버에서 클라이언트로 전송하는 데이터를 담는 부분이다.

 

 

주요 상태 코드

 

100 : Continue (클라이언트로부터 일부 요청을 받았으며 나머지 정보를 계속 요청함)

 

200 : OK (요청이 성공적으로 수행되었음)

201 : Created (PUT 메소드에 의해 원격지 서버에 파일 생성됨)

202 : Accepted (웹 서버가 명령 수신함)

 

301 : Moved Permanently (요청 자원의 위치가 영구적으로 변경됨, Location 응답 헤더를 통해 자원의 변경된 URL 정보 전달)

302 : Found (요청 자원의 위치가 임시적으로 변경됨, Location 응답 헤더를 통해 자원의 변경된 URL 정보 전달)

304 : Not Modified (요청한 자원이 변경되지 않았으므로 클라이언트 로컬 캐시에 저장된 자원을 이용하라는 의미)

 

400 : Bad Request 요청 메시지 문법 오류)

401 : Unauthorized (요청한 자원에 대한 인가 필요, 요청 자원을 실행하는데 필요한 적절한 권한이 없음을 의미)

403 : Forbidden (요청한 자원에 대한 접근 차단)

404 : Not Found (요청한 자원이 존재하지 않음)

 

500 : Internal Server Error (내부 서버 오류)

반응형