HTTP는 전송계층 위에 있는 애플리케이션 계층으로서 웹 서비스 통신에 사용된다.
HTTP/1.0
기본적으로 한 연결당 하나의 요청을 처리하도록 설계되어 있다. 이는 서버로부터 파일을 가져올때마다 TCP의 3-웨이 핸드셰이크를 계속 열어야 하기 때문에 RTT가 증가하는 단점이 있다.
RTT
패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간이다.
RTT에 영향을 주는 요소로는
1.
거리 : 네트워크 엔드포인트 간의 거리가 멀면 네트워크 지연 시간이 증가합니다
2.
전송 매체 : 전송 미디어 또는 링크는 데이터가 통과할 때 지연 시간에 가장 큰 영향을 미칩니다(광섬유 네트워크는 무선 네트워크보다 지연 시간이 짧습니다.)
3.
네트워크 홉 수 : 중간 라우터가 여러 개인 경우 데이터 패킷에 필요한 홉 수가 증가하므로 네트워크 지연 시간이 늘어납니다
4.
트래픽 수준 : RTT는 일반적으로 높은 수준의 트래픽으로 네트워크가 정체 할 때 증가합니다
5.
서버 응답 시간 : 대상 서버가 요청에 응답하는 데 걸리는 시간은 처리 용량, 처리되는 요청 수 및 요청의 성격 (즉, 필요한 서버 측 작업량)에 따라 다릅니다. 더 긴 서버 응답 시간은 RTT를 증가시킵니다.
매번 연결할때마다 RTT가 증가하니 서버에 부담이 많이 가고 사용자 응답 시간이 길어진다. 이를 해결하기 위한 방법으로는
이미지 스플리팅
많은 이미지를 다운로드 받게 되면 과부하가 걸리기 떄문에 많은 이미지가 합쳐있는 하나의 이미지를 다운로드 받고, 이를 기반으로 background-image의 position을 이용하여 이미지를 표기하는 방법이다.
코드 압축
말그대로 코드를 압축해서 개행문자, 빈칸을 없애서 코드의 크기를 최소화 하는 방법이다.
이미지 Base64 인코딩
이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법이다. 이 방법은 서버와의 연결을 열고 이미지에 대해 서버에 HTTP 요청을 할필요가없다는 장점이 있다. 하지만 base64문자열로 변환할 경우 37% 정도 크기가 더 커지는 단점이 있다.
인코딩
정보의 형태나 형식을 표준화, 보안, 처리속도 향상, 저장 공간 절약 등을 위해 다른 형태나 형식으로 변환 하는 처리 방식