| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- lombok
- 일급 객체
- Spring
- java
- factory
- Google OAuth
- Volatile
- OAuth 2.0
- Dependency Injection
- builder
- 일급 컬렉션
- spring security
- synchronized
- Today
- Total
HJW's IT Blog
Web & HTTP 본문
HTTP: Hypertext Transfer Protocol
- 웹의 application layer protocol 이다.
- 웹 페이지는 객체로 이루어져 있는데 크게 두가지로 볼 수 있다
- Base HTML file
- several referenced objects
- Client - Server
- Client: 서버에게 웹 객체를 요청하는 브라우저
- Server: 요청에 응답하여 client 에게 객체를 보내줌
- TCP를 사용한다.
- TCP 특성
- Reliable Transport
- Flow Control
- Congestion Control
- Timing, 최소 throughput X
- Client 와 Server 간의 연결 프로세스가 필요함
- Client 가 TCP 연결을 시작한다 --> 소켓 생성
- Server 가 Client가 요청한 TCP 연결을 수락함
- 브라우저 사이에 HTTP 메세지 교환이 이루어 짐
- TCP 연결 종료
- TCP 특성
- HTTP 서버는 과거 요청에 대한 정보를 저장하지 않음
- HTTP 는 크게 두 종류로 나뉨
- Non-Persistent
- 최대 하나의 객체만 전송 후 연결 종료
- 여러 객체를 요청시, 여려 연결이 필요
- 하나의 객체당 2RTT 가 필요
- 브라우저들은 보통 parallel TCP connection을 연다
- Persistent
- 한번의 연결로 여러 객체 전송 가능
- Response를 보낸 후에도 서버가 연결을 유지시킨다
- Client는 참조 객체를 마주치는 순간 서버에 요청을 보낸다
- 모든 객체를 하나의 RTT로
- Non-Persistent

- RTT란?
- 하나의 작은 패킷은 client에서 server로 전송 되었다 돌아오는데에 걸리는 시간
- Response Time
- Non - persistent HTTP : (2RTT + 파일 전송 시간) * N
- Persistent HTTP: RTT + (RTT + 파일 전송 시간) * N
Cookies
쿠키란 웹사이트에서 사용자의 컴퓨터에 저장되는 작은 데이터 파일이다.
브라우저 서버간의 통신을 보다 효율적으로 만들기 위해 사용 되며 사용자가 웹사이트를 방문할 때 생성된다.
쿠키는 다음 과 같이 구성된다
- Cookie header line of HTTP response message
- Cookie header line in next HTTP request message
- Cookie 파일은 유저 브라우저에 저장된다
- back-end database at Web site

Web Cache
웹 캐시는 인터넷에서 정보를 가져올 때 사용하는 중간 저장소 이다.
웹 캐시는 인터넷 서비스 제공자나 대규모 기업에서 네트워크 성능을 향상시키기 위해 사용된다.
사용자가 웹 페이지에 연결할 때, 원래의 서버가 아닌 캐시 정보를 먼저 검색한다.
캐시의 최종 목표는 브라우저의 요청에 응답시간을 줄이는 것, 트레픽 감소와 간단한 정보를 효율적으로 제공하기 위함이다
ex) 브라우저가 HTTP 요청을 캐시에 보낸다 -> if: 캐시에 요청받은 정보 -> 캐시가 객체 반환 -> else: 캐시가 서버에 객체 요청 후 클라이언트에 반환
Caching Example
- Avg Obj Size: 1M bits
- Avg reqest rate from browser to server: 15/sec
- avg data rate to browers: 15 Mbps
- RTT from institutional router to any server: 2 sec
- Access link rate: 15.4 Mbps
LAN Utilization: 15%
Access link utilization: 97% --> problem
Total delay = Internet delay + access delay + LAN delay

위에서 access link rate 를 늘릴 경우 (15.4 -> 154 Mbps)
Access link utilization: 9.7%
--> 하지만 비싸다

access link rate 를 두고 local cache를 두었을 경우
-> Cache hit rate = 0.4 (40% 의 요청은 캐시에서 만족된다)
-> Data rate to browsers over access link = 0.6 * 15 Mbps = 9Mbps
-> Access Link Utilization: 58%
-> Total delay: 0.6 * (delay from origin server) + 0.4 * (delay when satisfied at cache)
-> 즉, access link rate을 늘린 것 보다 싸고 빠르다

'컴퓨터 네트워크' 카테고리의 다른 글
| Socket Programming with TCP & UDP (0) | 2023.04.05 |
|---|---|
| P2P, CDN (0) | 2023.04.02 |
| DNS: Domain Name System (0) | 2023.04.01 |
| FTP: File Transfer Protocol (0) | 2023.04.01 |
| 응용 계층: Application Layer (0) | 2023.03.31 |