Network/Network

[프로토콜] HTTP 프로토콜 이란?

양디 2016. 2. 26. 17:58

HTTP 


HTTP 는 (HyperText Transfer Protocol) 의 약자이다.


인터넷 통신을 위해 사용되는 프로토콜이며, 우리가 웹브라우저를 통해 페이지들을 볼 수 있는 것도 모두 HTTP 덕분이다.


HTML 뿐만 아니라 각종 이미지, 동영상, 음성 데이터 들도 전송이 가능하다.



Server/Client 모델



HTTP는 Server/Client 모델이다. 

프로토콜의 모델은 P2P나 서버/클라이언트 모델 등이 존재한다.


클라이언트는 우리가 사용하는 웹 브라우저 등의 어플리케이션이 해당하며, 흔히 프론트엔드 부분이라고 볼 수 있다.

서버는 클라이언트로부터 요청을 받고, 그 요청을 처리하는 기능을 한다.


일반적으로 클라이언트는 서버에 요청 (Request) 을 하고, 서버는 그 요청에 대한 반응 (Response) 을 돌려준다.


요청을 할 때에는 URI (Unified Resource Identifier) 으로 요청을 하게 되는데, (URI는 나중에 따로 포스팅) 


예를 들어 http://dalkomit.com/133 라는 URI로 브라우저가 request를 보내면,

티스토리 내부의 블로그 관리하는 웹서버는 요청을 보낸 브라우저로 해당하는 요청에 맞는 반응을 보내주는 것이다.


이 요청과 반응에는 각각 내용이 정해져 있다.

그러한 헤더들에 대한 내용은 상당히 긴 내용이 될 수 있으므로 따로 포스팅을 하자.


Connectionless


HTTP는 connectionless 한 프로토콜이다.


이말인즉슨, 연결을 하고, Request를 하고 Response를 보내준 뒤에 접속을 끊는다.


계속해서 브라우저와 서버가 연결되어있는 것이 아니라는 것이다.


그렇기 때문에 서버와 계속해서 통신이 필요한 경우에는 Ajax나 socket.io 등의 특수한 방법들을 사용하는 것이다.


또한 페이지를 이동할 때마다 연결이 계속해서 끊기고 새로 연결되고를 반복하므로 서버와 클라이언트는 연결 정보를 저장할 다른 방법이 필요하다.


통신이 끝나면 현재 상태가 저장이 되지 않기 때문에, Stateless 한 프로토콜이라고 한다.


예를 들어 인터넷에 로그인을 하면, 쿠키나 세션의 방식이 없다면 로그인을 한 정보가 바로 사라져버린다.


이러한 불편함을 해소하고자 쿠키와 세션이 나왔고, 다음 포스팅에서 알아보자 !


Request Methods

HEAD

GET과 같은 요청이지만, 자료에 대한 정보(meta-information)만을 받는다.

GET

URL에 해당하는 자료의 전송을 요청한다.

POST

서버가 처리할 수 있는 자료를 보낸다.

PUT

해당 URL에 자료를 저장한다.

DELETE

해당 URL의 자료를 삭제한다.

TRACE

이전에 요청한 내용을 들을 것을 요청한다.

OPTIONS

서버가 특정 URL에 대해 어떠한 HTTP Method를 지원하는지 묻는다.

CONNECT

프록시가 사용하는 요청.

(위키백과 출처)


가장 많이 쓰이는 메시지는 Get과 Post인데, 우리가 인터넷 주소에 쓰는 것이 Get이다.

Get을 보내면 서버에서 그 주소에 해당하는 Response를 보내준다.

Post는 폼데이터를 보내기 위해 보통 사용하는데, 우리가 로그인 할 때 폼에 아이디와 비밀번호를 입력하면 로그인이 되는 등이 포스트 방식이다.




여기까지 !

댓글