프로그래밍/General

HTTP 개관

Lou Park 2016. 7. 25. 16:59

HTTP (hypertext transfer protocol)는 전 세계의 웹 브라우저 및 서버, 웹 애플리케이션들이

상호작용 할 수 있도록 해주는 통로다.


주소창에  http://라고 쓰는 것은 http 프로토콜을 사용하겠다는 말이다.


웹 클라이언트와 서버

웹 클라이언트는 서버에 HTTP 요청을 보내고

서버는 요청된 데이터를 HTTP 응답으로 돌려준다.

이 요청과 응답을 'Transaction' 이라 한다.


리소스와 MIME

웹 서버는 웹 리소스 들도 있다.

HTML파일, txt, jpeg, avi등 모든 종류의 파일들이다.

이들을 클라이언트가 요청하면, 서버는 리소스에 따라

객체 각각에 MIME(multipurpose internet mail extensions) 타입이라는 데이터 포맷 라벨을 붙인다.


예를 들어 jpeg 이미지의 MIME 타입은 "image/jepg"이다.


URI / URL

웹 서버에 있는 리소스는 각 자이름이 있어서,

이들을 통합 자원 식별자, 즉 URI (Uniform resource identifier)를 통해 불러올 수 있다.

URI는 인터넷의 우편물 주소 같은 것으로, 정보 리소스를 고유하게 식별하고 위치를 지정할 수 있다.

오늘 날 대부분의 URI는 URL(uniform resource locator)이다. 


HTTP 상태코드

모든 HTTP 응답 메세지는 상태코드와 함께 반환된다.

이미 없는 주소로 갔을때 나오는 유명한 404 page도 이 상태코드 중 하나였다!


흔히 쓰이는 상태코드

200 : 성공! 문서가 바르게 반환 되었다.

302 : 다시 보내라. 다른 곳에서 리소스를 가져가라.

404 : 없음. 리소스를 찾을 수 없다.


TCP 커넥션

HTTP 클라이언트가 서버에 메세지를 전송할 수 있게 되기 전에,

인터넷 프로토콜 주소(IP)와 포트번호를 사용해 클라이언트와 서버사이에 TCP/IP 커넥션을 맺어야 한다.

TCP는 연결지향(Connection-oriented) 전달 서비스다. 연결 지향이란 호스트가 데이터를 교환하기 이전에 

연결이 반드시 이루어져야 함을 뜻한다. TCP는 전화를 거는 것처럼 상대와 연결을 설정한 뒤 통신을 시작한다.

TCP가 UDP와 구분되는 것은 확인응답파일(Acknowledge)이 있다는 것이다.

이걸로 송수신을 잘 했는지 확인을 할 수 있어 신뢰도가 높다.

하지만 데이터 용량이 증가하여 수신속도가 떨어진다는 단점도 있다.



프록시(proxy), 캐시(cache), 게이트웨이(gateway)는 조금 더 공부를 해야겠다^^;