본문 바로가기

Development/HTTP

1. HTTP 개관

1장은 대체로 HTTP에 대해서 얕게 훑은 형식의 워밍업 챕터이다. 이해하기 쉬운 용어와 친절한 설명으로........... 




웹 애플리케이션, 서버, 웹브라우저 등은 모두 HTTP(HyperText Transfer Protocol)을 통해 대화


이때, HTTP는 신뢰성 있는 데이타 전송 프로토콜을 사용 -- 데이타 유실이나 왜곡에 안전함


웹 서버(HTTP 서버)에 인터넷에 데이타를저장하고, 클라이언트가 이로 데이타 요청을 함 !


이를테면,  클라이언트가 웹 브라우저 상에서 http://www.asdf.com/index.html 을 입력하면,


www.asdf.com 서버로 HTTP 요청을 보내어 index.html 이라는 리소스를 가져올것을 기대함.


웹 리소스 ?


정적 파일(텍스트파일, HTML 파일, JPEG 등 ), 동적 리소스(라이브 영상, 실시간 변하는 주식 데이타 등)


- 미디어 타입 : HTTP는 웹에서 전송되는 객체에 MIME 타입이라는 데이타포맷라벨을 붙임, 이를 통해 웹브라우저는 응답으로 부터 다룰 수 있는 데이타인지 판단함

Content-type : image/jpeg -->   MIME 타입 (주타입/부타입), ex. text/html, image/gif ...


- URI : Uniform Resource Identifier  , http://www.asdf.com/index.html  는 www.asdf.com에 있는 index.html 이란 리소스에 대한 URI 임

URL, URN 이 있음


HTTP 트랜잭션 ?

HTTP 트랜잭션은 ,요청과 응답으로 이루어짐

- 요청명령에는 여러가지 메서드가 있음 GET,PUT,DELETE,POST,HEAD ... 등 ( 추후 자세히 다룸 3장)

- 응답에는 상태코드가 함께 반환됨 200, 203, 404 등...

웹페이지는 여러 트랜잭션을 수행하여 가져오게됨, 여러 리소스의 모음이며 각 리소스는 각기 다른 서버에 위치할 수 있다.


메시지 ?

이진형식이 아닌 텍스트 형식으로 읽고 쓰기 쉬움

HTTP 메시지는 시작줄 / 헤더 / 본문(바디) 으로 구성됨. 본문에는 이진 데이타를 포함(이미지, 음성 등)할 수 있다.


Request

시작줄    GET /tool.html HTTP/1.1

헤더        User-agent : Mozilla/4.75 .....

Host: www.asdf.com

Accept : text/html, image/gif

Accpet-language: en


Response

시작줄    HTTP/1.1 200 OK

헤더        bla~bla~

Content-length:408

Content-type : text/html

바디        <HTML>

.... 

</HTML>



TCP 커넥션?

웹브라우저는 서버의 URL에서 호스트명 추출 ->  IP로 변환 -> 포트번호 추출 -> 웹서버와 TCP 커넥션 ->HTTP 요청 -> 서버 응답 -> 커넥션이 닫히고 브라우저로 리턴