HTTP란 무엇인가?

· 유창연 · 3 min read

HTTP 프로토콜의 기본 개념과 특징을 정리합니다. 요청 메서드, Connectionless/Stateless, URI, Keep-Alive 등을 다룹니다.

HTTP란 무엇인가?

HTTP는 인터넷 상에서 데이터를 주고 받기 위한 프로토콜이다. TCP/IP 위에서 동작한다.

1. 서버/클라이언트 모델

클라이언트에서 요청을 보내고 서버는 응답을 하는 구조로 작동한다.

2. Connectionless & stateless

HTTP는 connectionless, statelss 하게 동작한다.

서버에 요청을 해서 응답을 받으면 연결을 끊어버린다.

장점 : 접속 유지를 최소한으로 할 수 있다.

단점 : stateless, 즉 이전 상태를 알 수 없게 된다. 클라이언트가 로그인을 성공 했더라도 서버는 이전 상태를 알 수 없기 때문에 클라이언트의 로그인 여부를 확인할 수 없다.

3. URI(Uniform Resource Identifiers)

클라이언트는 URI를 이용하여 자원을 얻는다. (자원의 위치를 찾는다.)

4. Method

요청의 종류를 서버에게 알려주기 위해서 사용한다.

GET : 정보를 요청하기 위해서 사용한다. (SELECT)

POST : 정보를 밀어넣기 위해서 사용한다. (INSERT)

PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE)

DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE)

HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용한다.

OPTIONS : 웹서버가 지원하는 메서드의 종류를 요청한다.

TRACE : 클라이언트의 요청을 그대로 반환한다. 예컨데 echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용한다.

명시적으로 method를 사용하지 않아도 웹 서비스 개발에 큰 문제는 발생하지 않지만

RESTful API 서버는 명시적으로 구분한다.

5. 응답 헤더 포맷

프로토콜과 응답코드 : ( HTTP/1.1 200 OK )

날짜 : ( Date: Sun, 12 Aug 2018 11:30:00 GMT )

서버 프로그램및 스크립트 정보 : ( Apache/2.2.4 (Unix) PHP/5.2.0 )

응답헤더에는 다양한 정보를 추가할 수가 있다.

컨텐츠의 마지막 수정일

캐쉬 제어 방식.

컨텐츠 길이.

6. Keep Alive

Keep-alive 설정을 하면,지정된 시간동안 연결을 끊지 않고 요청을 계속해서 보낼 수 있다.

[참고]

https://shlee0882.tistory.com/107

댓글

Back to Blog

관련 게시글

View All Posts »
Maven 이란?

Maven 이란?

자바 프로젝트 관리 도구 Maven의 개념과 빌드 라이프사이클, POM 설정 방법을 알아봅니다.