🕰️ HTTP/1.0

2025. 10. 27. 15:22·Computer Science/Network

HTTP는 애플리케이션 계층으로 웹 서비스 통신에 사용됩니다. HTTP/1.0 부터 시작해서 발전을 거듭해 지금은 HTTP/3 입니다.

HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었습니다. 이는 RTT 증가를 불러왔습니다. 서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속 열어야 했기 때문에 RTT가 늘어나는 단점이 있었습니다.

  • 용어 설명: 
    • RTT:
      패킷이 목적지에 도달하고 다시 출발지로 돌아오기까지 걸리는 시간, 즉 패킷 왕복 시간

⏱️ RTT의 증가를 해결하기 위한 방법

매번 연결할 때마다 RTT가 증가하므로 서버 부담이 커지고 사용자 응답 시간이 길어졌습니다. 이를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩 등을 사용하곤 했습니다.

📌 이미지 스플리팅

많은 이미지를 다운로드하면 과부하가 걸리기 때문에, 여러 이미지를 하나의 큰 이미지로 합쳐 다운로드하고, 이를 background-image의 position을 이용해 개별 이미지를 표시하는 방법입니다.

#icons>li>a{
	background-image:url("icons.png");
    width:25px;
    display:inline-block;
    height:25px;
    repeat:no-repeat;
}
#icons>li:nth-child(1)>a{
	background-position:2px-8px;
}
#icons>li:nth-child(2)>a{
	background-position:-29px-8px;
}

하나의 이미지인 icons.png를 기반으로 background-position을 통해 2개의 이미지를 설정한 코드입니다.

 

📌 코드 압축

코드를 압축해서 개행 문자, 빈칸을 없애서 코드의 크기를 최소화하는 방법입니다.

const express=require('express')
const app=express()
const port=3000
app.get('/',(req,res)=>{
	res.send('Hello World')
})

app.listen(port,()=>{
	console.log('Example app listening on port ${port}')
})

=>

const express=require("express"),app=express(),port=3e3;app.get("/",(e,p)=>{p.send("Hello World!")}),app.listen(3e3,()=>{console.log("Example app listening on port 3000")});

📌 이미지 Base64 인코딩

이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법입니다. 이 방식은 서버와의 연결을 열고 이미지에 대해 HTTP 요청을 할 필요가 없다는 장점이 있습니다. 단, Base64 문자열로 변환 시 파일 크기가 약 37% 증가하는 단점이 있습니다.

  • 용어 설명: 
    • 인코딩:
      정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해 다른 형태나 형식으로 변환하는 처리 방식

'Computer Science > Network' 카테고리의 다른 글

🚀 HTTP/2  (0) 2025.10.28
🏗️ HTTP/1.1  (0) 2025.10.27
🧭 IP 주소  (1) 2025.10.21
🪄 네트워크 기기, 계층별로 한눈에 정리하기!  (0) 2025.10.14
📚 PDU  (0) 2025.10.14
'Computer Science/Network' 카테고리의 다른 글
  • 🚀 HTTP/2
  • 🏗️ HTTP/1.1
  • 🧭 IP 주소
  • 🪄 네트워크 기기, 계층별로 한눈에 정리하기!
TECHNING
TECHNING
Hi! I'm techning
  • TECHNING
    TECHNING
    TECHNING
    • 분류 전체보기 (54)
      • Computer Science (45)
        • Design Pattern (11)
        • Programming Paradigm (4)
        • Network (15)
        • Operating System (6)
        • Database (6)
        • Data Structure (3)
      • Algorithm (5)
        • Python (3)
        • Java (1)
      • IT Insight (4)
  • hELLO· Designed By정상우.v4.10.4
TECHNING
🕰️ HTTP/1.0
상단으로

티스토리툴바