SlideShare a Scribd company logo
1 of 17
Download to read offline
Browser Engineering
(Ch1. Web Browser Engineering)
Jaeyeol Lee(@malkoG)
Frontend Deep Divers
브라우저가 일반 사용자에게 웹페이지를 표시하기 위해서,
먼저 웹페이지 문서의 카피를 가지고 있어야 한다.
Connecting to a server (1)
Client
브라우저는 OS에다가 인터넷 어딘가에 있는 서버로 연결이 닿을 수 있도록 지시한다.
(인터럽트 발생)
Connecting to a server (2)
Client
Server
example.org
example.org
OS는 DNS 서버와 데이터를 주고 받는다.
DNS 서버는 호스트의 이름을 목적지 IP 주소로 변환하는 역할을 한다.
Connecting to a server (3)
Client Server
example.org
93.184.216.34
Name Value
example.org 93.184.216.34
google.com 8.8.8.8
example.org
Device Driver를 통해 유선으로든, 무선으로든 신호를 보낸다.
Connecting to a server (4)
Server
example.org
Client
Device
Driver
Connect
93.184.216.34
Device Driver를 통해 보낸 시그널은 네트워크 상에 있는 라우터를 타고타고 전송된다.
Connecting to a server (5)
Server
example.org
Client
Device
Driver
Connect
93.184.216.34
라우터를 타고 전달되는 과정에서는,
결과적으로 목적지 IP에 도달하는데 가장 최적인 방향으로 전달된다.
Connecting to a server (5) Cont.
Server
example.org
Client
Device
Driver
Connect
93.184.216.34
클라이언트의 PC를 통해 전달된 메시지가 서버에 도착하게 되면,
클라이언트와 서버 사이의 연결이 만들어지기 시작한다.
Connecting to a server (6)
Client
Server
example.org
Connection Established
Requesting Information (1)
Request Line
● HTTP Method
브라우저가 서버에 요청하는 행위
(조회, 생성, 갱신, 삭제 등등)
● Path
어떤 리소스에 대한 요청인지
● HTTP Version
HTTP 0.9, 1.0, 1.1, 2.0, …
HTTP 1.1 : keep-alive 기능이 추가됨
HTTP 2.0
Requesting Information (2)
Request Headers
● 이후에 표시되는 N개의 라인은
전부 Request 헤더의 필드를
나타낸다고 봐도 됨.
● 각각의 헤더가 어떤 의미를 가지는지는 RFC 2616을 참고
● ex. Request 헤더의 Host 필드는 어떤 서버에 대한 요청인지를 명시함
Requesting Information (3)
A single blank line
● Header들의 Line이 끝나고 나면
"여기까지가 요청의 끝"이라는 의미로
Blank line을 추가해줘야 한다.
(눈으로는 보이지않는 rn)
● 주의 : Blank line이 없으면 서버는 요청 내용이 더 없는지를 기다리며
newline이 올때까지 계속 기다린다.
○ 클라이언트도 역시 서버에서 response가 올 때까지 계속해서 기다리게 된다.
The server’s response (1) - Response Line
Response Line
● HTTP Version
● Response Code
○ 1xx : Informational
○ 2xx : Success
○ 3xx : Most of all is Redirection
○ 4xx : Client did wrong request
○ 5xx : Server handled request wrong way
● Response Description
The server’s response (2) - Response Headers
요청한 리소스에 대한 정보
● Content-Type
● Content-Length
● Last-Modified
The server’s response (3) - Response Headers
서버에 대한 정보
● Server
● X-Cache
The server’s response (4) - Response Headers
브라우저가 얼마동안 캐싱해야하는지
● Cache-Control
● Expires
● Etag
The server’s response (5) - Body
응답 헤더 뒤에는 반드시 빈칸이 있어야 한다.
빈 칸 뒤에는 response의 body가 포함될 수도 있다.
(Telnet으로 요청보냈을때의 응답)
감사합니다.

More Related Content

What's hot

HTTP 완벽가이드 4장 커넥션관리
HTTP 완벽가이드 4장 커넥션관리HTTP 완벽가이드 4장 커넥션관리
HTTP 완벽가이드 4장 커넥션관리박 민규
 
HTTP 완벽가이드- 19장 배포시스템
HTTP 완벽가이드- 19장 배포시스템HTTP 완벽가이드- 19장 배포시스템
HTTP 완벽가이드- 19장 배포시스템박 민규
 
자동화빌드서버
자동화빌드서버자동화빌드서버
자동화빌드서버성기 홍
 
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형Minchul Jung
 
구글의 분산스토리지
구글의 분산스토리지구글의 분산스토리지
구글의 분산스토리지juhyun
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리YoungHeon (Roy) Kim
 
HTTP 완벽가이드 10장 http2.0, 11장_클라이언트식별과쿠키
HTTP 완벽가이드 10장 http2.0, 11장_클라이언트식별과쿠키HTTP 완벽가이드 10장 http2.0, 11장_클라이언트식별과쿠키
HTTP 완벽가이드 10장 http2.0, 11장_클라이언트식별과쿠키박 민규
 
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초JinuNoh
 
2017년 10월 파밍 악성코드 분석 보고서
2017년 10월 파밍 악성코드 분석 보고서2017년 10월 파밍 악성코드 분석 보고서
2017년 10월 파밍 악성코드 분석 보고서poisoneye
 
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)Seungmin Yu
 
How to patch linux kernel
How to patch linux kernelHow to patch linux kernel
How to patch linux kernelKangmin Park
 
닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기흥배 최
 
패킷의 전달과정
패킷의 전달과정패킷의 전달과정
패킷의 전달과정성연 김
 
F5 spdy 솔루션 선관
F5 spdy 솔루션 선관F5 spdy 솔루션 선관
F5 spdy 솔루션 선관itian-f5
 
Redis From 2.8 to 4.x
Redis From 2.8 to 4.xRedis From 2.8 to 4.x
Redis From 2.8 to 4.xDaeMyung Kang
 
더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2EungJun Yi
 
클린코드 16장
클린코드 16장클린코드 16장
클린코드 16장진화 손
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민종민 김
 
20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈ymtech
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약세빈 정
 

What's hot (20)

HTTP 완벽가이드 4장 커넥션관리
HTTP 완벽가이드 4장 커넥션관리HTTP 완벽가이드 4장 커넥션관리
HTTP 완벽가이드 4장 커넥션관리
 
HTTP 완벽가이드- 19장 배포시스템
HTTP 완벽가이드- 19장 배포시스템HTTP 완벽가이드- 19장 배포시스템
HTTP 완벽가이드- 19장 배포시스템
 
자동화빌드서버
자동화빌드서버자동화빌드서버
자동화빌드서버
 
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
 
구글의 분산스토리지
구글의 분산스토리지구글의 분산스토리지
구글의 분산스토리지
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리
 
HTTP 완벽가이드 10장 http2.0, 11장_클라이언트식별과쿠키
HTTP 완벽가이드 10장 http2.0, 11장_클라이언트식별과쿠키HTTP 완벽가이드 10장 http2.0, 11장_클라이언트식별과쿠키
HTTP 완벽가이드 10장 http2.0, 11장_클라이언트식별과쿠키
 
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
 
2017년 10월 파밍 악성코드 분석 보고서
2017년 10월 파밍 악성코드 분석 보고서2017년 10월 파밍 악성코드 분석 보고서
2017년 10월 파밍 악성코드 분석 보고서
 
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
Custom DevOps Monitoring System in MelOn (with InfluxDB + Telegraf + Grafana)
 
How to patch linux kernel
How to patch linux kernelHow to patch linux kernel
How to patch linux kernel
 
닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기닷넷프레임워크에서 Redis 사용하기
닷넷프레임워크에서 Redis 사용하기
 
패킷의 전달과정
패킷의 전달과정패킷의 전달과정
패킷의 전달과정
 
F5 spdy 솔루션 선관
F5 spdy 솔루션 선관F5 spdy 솔루션 선관
F5 spdy 솔루션 선관
 
Redis From 2.8 to 4.x
Redis From 2.8 to 4.xRedis From 2.8 to 4.x
Redis From 2.8 to 4.x
 
더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2
 
클린코드 16장
클린코드 16장클린코드 16장
클린코드 16장
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
 

Similar to Browser Engineering - Ch1 Summary

Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Sung-jae Park
 
Browser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdfBrowser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdfHo Jeong Im
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea Strike
 
네트워크 스터디(Tcp 소켓 프로그래밍)
네트워크 스터디(Tcp 소켓 프로그래밍)네트워크 스터디(Tcp 소켓 프로그래밍)
네트워크 스터디(Tcp 소켓 프로그래밍)MoonLightMS
 
Before OTD EDU Assignments
Before OTD EDU AssignmentsBefore OTD EDU Assignments
Before OTD EDU AssignmentsBeom Lee
 
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTPNAVER D2
 
웹서버와 프라우드넷 서버간 상호작용 가이드
웹서버와 프라우드넷 서버간 상호작용 가이드웹서버와 프라우드넷 서버간 상호작용 가이드
웹서버와 프라우드넷 서버간 상호작용 가이드Hyunjik Bae
 
웹서버와 ProudNet 서버간 상호작용 가이드
웹서버와 ProudNet 서버간 상호작용 가이드웹서버와 ProudNet 서버간 상호작용 가이드
웹서버와 ProudNet 서버간 상호작용 가이드Hyunjik Bae
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HyeonSeok Choi
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기SangJin Kang
 
Tcp server / client
Tcp server / clientTcp server / client
Tcp server / client문익 장
 
Private cloud network architecture (2018)
Private cloud network architecture (2018)Private cloud network architecture (2018)
Private cloud network architecture (2018)Gasida Seo
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림우림 류
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)Amazon Web Services Korea
 
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST APIWooyoung Ko
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?nexusz99
 

Similar to Browser Engineering - Ch1 Summary (20)

Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2
 
Browser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdfBrowser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdf
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_Architecture
 
3장
3장3장
3장
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 
네트워크 스터디(Tcp 소켓 프로그래밍)
네트워크 스터디(Tcp 소켓 프로그래밍)네트워크 스터디(Tcp 소켓 프로그래밍)
네트워크 스터디(Tcp 소켓 프로그래밍)
 
Before OTD EDU Assignments
Before OTD EDU AssignmentsBefore OTD EDU Assignments
Before OTD EDU Assignments
 
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
 
웹서버와 프라우드넷 서버간 상호작용 가이드
웹서버와 프라우드넷 서버간 상호작용 가이드웹서버와 프라우드넷 서버간 상호작용 가이드
웹서버와 프라우드넷 서버간 상호작용 가이드
 
웹서버와 ProudNet 서버간 상호작용 가이드
웹서버와 ProudNet 서버간 상호작용 가이드웹서버와 ProudNet 서버간 상호작용 가이드
웹서버와 ProudNet 서버간 상호작용 가이드
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
 
Tcp server / client
Tcp server / clientTcp server / client
Tcp server / client
 
Private cloud network architecture (2018)
Private cloud network architecture (2018)Private cloud network architecture (2018)
Private cloud network architecture (2018)
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
 
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
 
Warp
WarpWarp
Warp
 
CDN overview
CDN overviewCDN overview
CDN overview
 

More from Jae-yeol Lee

[PyCon KR 2023 Lightning talk day1] 개밥먹기 주도 개발
[PyCon KR 2023 Lightning talk day1] 개밥먹기 주도 개발[PyCon KR 2023 Lightning talk day1] 개밥먹기 주도 개발
[PyCon KR 2023 Lightning talk day1] 개밥먹기 주도 개발Jae-yeol Lee
 
Backtracking [ICPC Sinchon]
Backtracking [ICPC Sinchon]Backtracking [ICPC Sinchon]
Backtracking [ICPC Sinchon]Jae-yeol Lee
 
HI-ARC Number Theory
HI-ARC Number TheoryHI-ARC Number Theory
HI-ARC Number TheoryJae-yeol Lee
 
HI-ARC PS 102 Brute Force
HI-ARC PS 102 Brute ForceHI-ARC PS 102 Brute Force
HI-ARC PS 102 Brute ForceJae-yeol Lee
 
HI-ARC PS 102 Bitmask
HI-ARC PS 102 BitmaskHI-ARC PS 102 Bitmask
HI-ARC PS 102 BitmaskJae-yeol Lee
 
HI-ARC ACM ICPC TF #5 (ADVANCED DFS)
HI-ARC ACM ICPC TF #5 (ADVANCED DFS)HI-ARC ACM ICPC TF #5 (ADVANCED DFS)
HI-ARC ACM ICPC TF #5 (ADVANCED DFS)Jae-yeol Lee
 
HI-ARC ACM-ICPC 준비반 - KMP algorithm
HI-ARC ACM-ICPC 준비반 - KMP algorithmHI-ARC ACM-ICPC 준비반 - KMP algorithm
HI-ARC ACM-ICPC 준비반 - KMP algorithmJae-yeol Lee
 
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화Jae-yeol Lee
 
HI-ARC 정기모임 #7 BFS
HI-ARC 정기모임 #7 BFSHI-ARC 정기모임 #7 BFS
HI-ARC 정기모임 #7 BFSJae-yeol Lee
 
HI-ARC 정기모임 #6 dfs
HI-ARC 정기모임 #6 dfsHI-ARC 정기모임 #6 dfs
HI-ARC 정기모임 #6 dfsJae-yeol Lee
 
[APL OJT] REST API TEST
[APL OJT] REST API TEST[APL OJT] REST API TEST
[APL OJT] REST API TESTJae-yeol Lee
 
Embedded project presentation
Embedded project presentationEmbedded project presentation
Embedded project presentationJae-yeol Lee
 

More from Jae-yeol Lee (13)

[PyCon KR 2023 Lightning talk day1] 개밥먹기 주도 개발
[PyCon KR 2023 Lightning talk day1] 개밥먹기 주도 개발[PyCon KR 2023 Lightning talk day1] 개밥먹기 주도 개발
[PyCon KR 2023 Lightning talk day1] 개밥먹기 주도 개발
 
Backtracking [ICPC Sinchon]
Backtracking [ICPC Sinchon]Backtracking [ICPC Sinchon]
Backtracking [ICPC Sinchon]
 
HI-ARC Number Theory
HI-ARC Number TheoryHI-ARC Number Theory
HI-ARC Number Theory
 
HI-ARC PS 102 Brute Force
HI-ARC PS 102 Brute ForceHI-ARC PS 102 Brute Force
HI-ARC PS 102 Brute Force
 
HI-ARC PS 102 Bitmask
HI-ARC PS 102 BitmaskHI-ARC PS 102 Bitmask
HI-ARC PS 102 Bitmask
 
HI-ARC PS 101
HI-ARC PS 101HI-ARC PS 101
HI-ARC PS 101
 
HI-ARC ACM ICPC TF #5 (ADVANCED DFS)
HI-ARC ACM ICPC TF #5 (ADVANCED DFS)HI-ARC ACM ICPC TF #5 (ADVANCED DFS)
HI-ARC ACM ICPC TF #5 (ADVANCED DFS)
 
HI-ARC ACM-ICPC 준비반 - KMP algorithm
HI-ARC ACM-ICPC 준비반 - KMP algorithmHI-ARC ACM-ICPC 준비반 - KMP algorithm
HI-ARC ACM-ICPC 준비반 - KMP algorithm
 
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
 
HI-ARC 정기모임 #7 BFS
HI-ARC 정기모임 #7 BFSHI-ARC 정기모임 #7 BFS
HI-ARC 정기모임 #7 BFS
 
HI-ARC 정기모임 #6 dfs
HI-ARC 정기모임 #6 dfsHI-ARC 정기모임 #6 dfs
HI-ARC 정기모임 #6 dfs
 
[APL OJT] REST API TEST
[APL OJT] REST API TEST[APL OJT] REST API TEST
[APL OJT] REST API TEST
 
Embedded project presentation
Embedded project presentationEmbedded project presentation
Embedded project presentation
 

Browser Engineering - Ch1 Summary

  • 1. Browser Engineering (Ch1. Web Browser Engineering) Jaeyeol Lee(@malkoG) Frontend Deep Divers
  • 2. 브라우저가 일반 사용자에게 웹페이지를 표시하기 위해서, 먼저 웹페이지 문서의 카피를 가지고 있어야 한다. Connecting to a server (1) Client
  • 3. 브라우저는 OS에다가 인터넷 어딘가에 있는 서버로 연결이 닿을 수 있도록 지시한다. (인터럽트 발생) Connecting to a server (2) Client Server example.org example.org
  • 4. OS는 DNS 서버와 데이터를 주고 받는다. DNS 서버는 호스트의 이름을 목적지 IP 주소로 변환하는 역할을 한다. Connecting to a server (3) Client Server example.org 93.184.216.34 Name Value example.org 93.184.216.34 google.com 8.8.8.8 example.org
  • 5. Device Driver를 통해 유선으로든, 무선으로든 신호를 보낸다. Connecting to a server (4) Server example.org Client Device Driver Connect 93.184.216.34
  • 6. Device Driver를 통해 보낸 시그널은 네트워크 상에 있는 라우터를 타고타고 전송된다. Connecting to a server (5) Server example.org Client Device Driver Connect 93.184.216.34
  • 7. 라우터를 타고 전달되는 과정에서는, 결과적으로 목적지 IP에 도달하는데 가장 최적인 방향으로 전달된다. Connecting to a server (5) Cont. Server example.org Client Device Driver Connect 93.184.216.34
  • 8. 클라이언트의 PC를 통해 전달된 메시지가 서버에 도착하게 되면, 클라이언트와 서버 사이의 연결이 만들어지기 시작한다. Connecting to a server (6) Client Server example.org Connection Established
  • 9. Requesting Information (1) Request Line ● HTTP Method 브라우저가 서버에 요청하는 행위 (조회, 생성, 갱신, 삭제 등등) ● Path 어떤 리소스에 대한 요청인지 ● HTTP Version HTTP 0.9, 1.0, 1.1, 2.0, … HTTP 1.1 : keep-alive 기능이 추가됨 HTTP 2.0
  • 10. Requesting Information (2) Request Headers ● 이후에 표시되는 N개의 라인은 전부 Request 헤더의 필드를 나타낸다고 봐도 됨. ● 각각의 헤더가 어떤 의미를 가지는지는 RFC 2616을 참고 ● ex. Request 헤더의 Host 필드는 어떤 서버에 대한 요청인지를 명시함
  • 11. Requesting Information (3) A single blank line ● Header들의 Line이 끝나고 나면 "여기까지가 요청의 끝"이라는 의미로 Blank line을 추가해줘야 한다. (눈으로는 보이지않는 rn) ● 주의 : Blank line이 없으면 서버는 요청 내용이 더 없는지를 기다리며 newline이 올때까지 계속 기다린다. ○ 클라이언트도 역시 서버에서 response가 올 때까지 계속해서 기다리게 된다.
  • 12. The server’s response (1) - Response Line Response Line ● HTTP Version ● Response Code ○ 1xx : Informational ○ 2xx : Success ○ 3xx : Most of all is Redirection ○ 4xx : Client did wrong request ○ 5xx : Server handled request wrong way ● Response Description
  • 13. The server’s response (2) - Response Headers 요청한 리소스에 대한 정보 ● Content-Type ● Content-Length ● Last-Modified
  • 14. The server’s response (3) - Response Headers 서버에 대한 정보 ● Server ● X-Cache
  • 15. The server’s response (4) - Response Headers 브라우저가 얼마동안 캐싱해야하는지 ● Cache-Control ● Expires ● Etag
  • 16. The server’s response (5) - Body 응답 헤더 뒤에는 반드시 빈칸이 있어야 한다. 빈 칸 뒤에는 response의 body가 포함될 수도 있다. (Telnet으로 요청보냈을때의 응답)