일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 핵심 원리 이해
- 7장 고급매핑
- Kotlin in action 5장
- KotlinInAction
- 코틀린인액션
- 백준
- 코틀린
- kotlin in action 정리
- 13460 구슬탈출 2
- 기능개발 python
- Kotlin
- 코틸린인액션
- spring
- 백준 20055 컨베이어 벨트 위의 로봇
- 객체 지향 설계와 스프링
- 싱글톤 컨테이너
- Kotlin in action 6장
- 20055
- Kotlin in action 3장
- 스프링 핵심 원리
- 백준 13460 Python
- 스프링 컨테이너와 스프링 빈
- 스프링 핵심 원리 - 기본편
- 20055 컨베이어 벨트 위의 로봇
- Python
- Kotlin in action 10장
- 고급매핑
- Kotlin In Action
- 자바 ORM 표준 JPA 프로그래밍 7장
- 컨베이어 벨트 위의 로봇 Python
- Today
- Total
목록스터디/HTTP 완벽 가이드 (7)
기록하는 습관
HTTP 완벽 가이드 10장 10.1 HTTP/2.0의 등장 배경 HTTP/1.0의 메시지 포맷은 구현의 단순성과 접근성에 주안점을 두고 최적화 되었기에, 성능을 희생시킨 면이 있다. 대표적으로 커넥션 하나를 통해 요청 하나를 보내고 응답을 받아야만 다음 요청을 보낼 수 있기 때문에 심각한 회전 지연이 생겼다. 이 문제를 해결하기 위해, 병렬 커넥션, 파이프라인 커넥션이 도입되었지만 근본적인 해결책은 되지 못했다. 성능 개선을 위한 여러 아이디어들이 제시가 됐고, 그 중 구글의 SPDY 프로토콜을 기초로 HTTP/2.0이 설계되었다. SPDY: 비표준 개방형 네트워크 프로토콜로, 기존의 HTTP에 속도를 개선하기 위해 여러 가지 기능을 추가. 헤더를 압축하여 대역폭 절약 하나의 TCP 커넥션에 여러 요청..
HTTP 완벽 가이드 2장 URL과 리소스 0. URL 구조 Schem, host, path 정도가 URL에 항상 포함해야 하는 요소이다. 단축 URL 단축 URL은 간편 URL 이라고도 불리며 긴 URL을 짧게 만들어 사용하기 편하게 만들어 준다. 구글이나 트위터 등 많은 부분에서 쓰인다. 쿠팡 파트너스 같은 URL이 단축 URL이라고 생각하면 된다. (인턴 때 했던 단축 URL 만들기 생각하면 된다.) 상대 URL 어떤 위치를 기준으로 상대적인 위치를 나타낸다. 현재 위치는 “./” 상대 위치는 “../” 으로 나타낸다. 가정) first 폴더에 test1.html, second 폴더가 있고, second 폴더에 test2.html이 있다. 아래와 같은 URL이 있다면 ./test2.html 과 같이..
HTTP 완벽 가이드 7장 캐시 7.2 대역폭 병목 네트워크 속도는 가장 느린 속도에 맞춰지기 때문에 병목 현상이 일어난다. 캐시는 이러한 네트워크 병목을 줄여준다. 국내에서는 지역 간 거리가 그렇게 멀지 않지만, 천조국의 경우는 다르다. 근처에 캐시 서버가 있다면 응답을 빨리 할 수 있다. 7.5 적중과 비적중 운영체제에서 배운 캐시 hit랑 같은 개념이다. 클라이언트에 요청한 데이터가 캐시에 있다면 원서버에 가지 않고 내려주고, 요청한 데이터가 없다면 원서버에 가져와서 캐시 서버 자체로 저장도 하고 클라이언트에게 넘긴다. 7.5.1 재검사 캐시 서버가 hit 하더라도 정말 최신이 맞는지 검증해야 한다. 캐시 서버는 사진이 원할 때 언제든지 재검사 할 수 있다. 304 Not Modified : 데이터..
HTTP 완벽 가이드 6장 프락시 6.1 웹 중개자 웹 프락시 서버는 클라이언트의 입장에서 트랜잭션을 수행하는 중개인이다. 중간에서 요청과 응답을 둘 다 받게 되므로 웹 클라이언트이면서 웹 서버가 되기도 한다. 사용 목적 네트워크 캐싱 특정 웹 사이트 액세스 방지 보안 방화벽 웹 케시 문서 접근 등.. 6.1.1 개인 프락시와 공유 프락시 공용 프락시 - 여러 클라이언트가 사용하는 프락시 개인 프락시 - 하나의 클라이언트가 독점적으로 사용하는 프락시 6.1.2 프락시 VS 게이트웨이 프락시 - 둘 이상의 애플리케이션을 연결하는데 “같은” 프로토콜을 사용 게이트웨이- 둘 이상의 애플리케이션을 연결하는데 “다른” 프로토콜을 사용 게이트웨이란? 리소스와 어플리케이션을 연결하는 것으로, HTTP 트래픽을 다른 ..
HTTP 완벽 가이드 4장 HTTP 커넥션 관리 HTTP는 어떻게 TCP 커넥션을 사용하는가 TCP 커넥션의 지연, 병목, 막힘 병렬 커넥션, keep-alive 커넥션, 커넥션 파이프라인을 활용한 HTTP의 최적화 커넥션 관리를 위해 따라야 할 규칙들 4.1 TCP 커넥션 HTTP 프로토콜은 비연결성이 특징이다. 이런 특징을 보완하기 위해 TCP를 선행하여 사용한다. [그림1] 웹브라우저가 TCP 커넥션을 통해 웹 서버에 요청을 보냄. 4.1.1 신뢰할 수 있는 데이터 전송 통로인 TCP HTTP 커넥션은 몇가지 사용 규칙이 추가된 TCP 커넥션이다. TCP는 HTTP에게 신뢰할 만한 통신 방식을 제공한다. 4.1.2 TCP 스트림은 세그먼트로 나뉘어 IP 패킷을 통해 전송된다. TCP는 IP 패킷(또..
HTTP 완벽 가이드 9장 9.1 크롤러와 크롤링 9.1.1 어디에서 시작하는가: ‘루트 집합’ 루트 집합: 크롤러가 방문을 시작하는 url들의 초기 집합 위 그림에서 웹을 크롤링 하려고 한다면, 어떤 루트 집합이 좋은가? 루트 집합에 A, G, S만 있다면 모든 페이지에 도달할 수 있다. 진짜 웹에서는, 최종적으로 모든 문서로 이어지게 되는 하나의 문서란 없다. 9.1.2 링크 추출과 상대 링크 정상화 크롤러는 간단한 HTML 파신을 해서 이들 링크들을 추출하고 상대 링크를 절대 링크로 변환할 필요가 있다. 9.1.3 순환 피하기 웹 크롤링 할 때, 루프나 순환에 빠지지 않도록 조심해야 한다. 순환을 피하기 위해 로봇들은 자신들이 어디를 방문했는지 알아야 한다. 9.1.4 루프와 중복 순환이 크롤러에게..
회사에서 개발 지식 향상을 위해 도서를 지원해준다. 평소 서버 개발을 하면서 http 지식이 얕다는 것을 느꼈기에 위의 책을 선택했다. 앞으로 책을 읽으며 정리한 내용들을 블로그에 올릴 예정이다. 아래 블로그를 많이 참고하면서 정리했습니다. http://tlog.tammolo.com/blog/9-db93e4d6-5d48-4f86-a20e-2cc4e469fbfb/ Tlog Tamm's dev log tlog.tammolo.com 감사합니다.