본문 바로가기

Computer Security/Web Security

HTTP protocol

<HTTP>

- 웹 서비스에서 사용하는 전 세계적으로 가장 많이 사용하는 application protocol

- Hyper Text를 전송하기 위한 약속(HTML: Hyper Text Markup Language를 전달하기 위한 프로토콜)

* Hyper Text : 비 순차적 text

- 초기 목적은 정보의 교환

- 요청(Request)와 응답(Response)으로 작동한다.


[Host] --- HTTP Request ---->[Server]

[Host] <--- HTTP Response ---[Server]

* HTTP Response : 메시지 기반(메시지를 만들어서 하나 던지고 그 다음 던지고...), 단위(규격)이 있다.

  --> 전송 계층으로 TCP를 사용하므로 그 메시지의 크기가 크다면 TCP에서 쪼개서 보낸다.(HTTP는 분할하지 않음)


* HTTP 1.0 vs HTTP 1.1

<HTTP 1.0>

1. 3-way connection

2. HTTP Request(index.html 달라..)

3. HTTP Response(index.html)

4. 4-way(연결끊음)

5. 3-way connection

6. HTTP Request(a.jpg 달라..)

7. HTTP Response(a.jpg)

8. 4-way(연결끊음)

...


- 단순하지만 네트워크 혼잡이 발생할 수 있다.


<HTTP 1.1> : 하나의 세션으로 그 페이지에서 필요한 모든 것을 받아올 수 있음

1. 3-way connection

2. HTTP Request(index.html 달라..) + connection : keep-Alive

3. HTTP Response(index.html) + 연결 안끊음

4. HTTP Request(a.jpg 달라..) + connection : keep-Alive

5. HTTP Response(a.jpg) + 연결 안끊음

...

 4-way(연결끊음)


- multiple request 처리 가능

- 하나의 ip로 여러 웹페이지 관리 가능 : 가상호스트 (ex : 웹 호스팅 업체)

* 가상호스트 : 하나의 ip로 여러 웹사이트 관리


==> HTTP 1.1이 더 효율적