기본적으로 HTTP는 애플리케이션 계층(응용 계층)으로서 웹 서비스 통신에 사용됨
RTT
패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간
#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개의 이미지를 설정한것을 볼 수 있음
// before
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}`)
})
// after
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")});
인코딩
정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해 다른 형태나 형식으로 변환하는 처리 방식
Keep-Alive
한 연결을 계속 유지하며 여러 리소스를 연속 요청
ex) HTML → 이미지 → CSS → JS 요청까지 한 연결 안에서 처리
image.jpg가 늦게 도착하면 styles.css, data.xml도 기다려야 함
스트림(stream)
시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 데이터 흐름
1️⃣ 클라이언트 → 서버
지원 가능한 암호 규약(Cipher Suite) 리스트 전달
2️⃣ 서버 → 클라이언트
인증서 + 암호 방식 선택 → 공개키 전달
3️⃣ 양쪽에서 공개키 + 개인키로 세션키 생성(PSK)
4️⃣ 세션 암호화 통신 시작
세션
운영체제가 어떠한 사용자로부터 자신의 자산 이용을 허락하는 일정한 기간
즉, 사용자는 일정 시간 동안 응용 프로그램, 자원 등을 사용 가능
프로토콜, AEAD 사이퍼 모드, 해싱 알고리즘이 나열된 규약
예시
개인키: 비밀키라고도 하며, 개인이 소유하고 있는 키이자 반드시 자신만이 소유해야 하는 키
공개키: 공개되어 있는 키
SHA-256 알고리즘
해시 함수의 결괏값이 256비트인 알고리즘
해시: 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑한 값
해싱: 임의의 데이터를 해시로 바꿔주는 일이며 해시 함수가 이를 담당
해시 함수: 임의의 데이터를 입력으로 받아 일정한 길이의 데이터로 바꿔주는 함수
| 항목 | 설명 |
|---|---|
| 캐노니컬 설정 | 중복 콘텐츠를 하나로 간주 |
| 메타 설정 | 제목/설명 키워드 최적화 |
| 페이지 속도 | 로딩 속도 향상, 점수 측정 툴: PageSpeed Insights |
| 사이트맵 | 검색엔진이 페이지 구조 인식 (예: sitemap.xml) |
1️⃣ CA로부터 인증서 구매 후 직접 서버에 적용
2️⃣ 로드밸런서에서 HTTPS 처리
3️⃣ CDN(Cloudflare 등)을 통해 HTTPS 제공
Google이 개발한 UDP 기반 전송 계층 프로토콜
초기 연결에서 TCP처럼 3-웨이 핸드셰이크 안 함
최초 접속: 1-RTT, 재접속 시: 0-RTT
→ 브라우저에서 즉시 통신 시작 가능
체감 속도 향상, 특히 모바일 환경에서 유리
참고: 북스터디 - 면접을 위한 CS 전공지식 노트 (Chapter 2-5)