HTTP란 무엇인가?
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 설정을 하면,지정된 시간동안 연결을 끊지 않고 요청을 계속해서 보낼 수 있다.
[참고]


