웹 개발자의 스펙 : HTTP
최영목
서비스플랫폼개발센터
ⓒ NAVER
 Corp.
목차
ü 웹 개발자가 갖추어야 할 기본기는 무엇인가?
ü 웹은 어떻게 동작하는가?
ü 로그아웃 되었어요!
ü 화면이 나오지 않아요!
ü 기본에 충실하자
웹 개발자가 알아야 할
기본기는 무엇인가?
일반
4 /서비스플랫폼개발센터
개발자는 무엇을 알아야할까?
프로그래밍 언어 알고리즘 자료구조
운영체제 네트워크 데이터베이스
…⋯ …⋯ …⋯
일반
5 /서비스플랫폼개발센터
웹 개발자는 무엇을 알아야할까?
HTTP
 + HTML
일반
6 /서비스플랫폼개발센터
오늘의 주제
HTTP
(Hypertext
 Transfer
 Protocol)
웹은 어떻게 동작하는가?
일반
8 /서비스플랫폼개발센터
인터넷과 웹
출처 : http://www.w3.org/Help/#webinternet
인터넷 ≠
 웹
일반
9 /서비스플랫폼개발센터
웹 아키텍처
출처 : http://www.w3.org/TR/webarch/
리소스
(자원)
일반
10 /서비스플랫폼개발센터
웹 아키텍처
출처 : http://www.w3.org/TR/webarch/
식별
(URIs)
상호작용
(HTTP)
포맷
(HTML)
일반
11 /서비스플랫폼개발센터
웹 아키텍처
출처 : http://www.w3.org/TR/webarch/
일반
12 /서비스플랫폼개발센터
식별 : URIs
리소스를 어떻게 식별할 것인가?
식별
일반
13 /서비스플랫폼개발센터
URI
 (Uniform
 Resource
 Identifier)
리소스를 식별하는 간결한 문자열
(RFC
 3986)
출처 : https://tools.ietf.org/html/rfc3986
식별
일반
14 /서비스플랫폼개발센터
URI
출처 : https://en.wikipedia.org/wiki/Uniform_resource_identifier
식별
일반
15 /서비스플랫폼개발센터
URL
 (Uniform
 Resource
 Locator)
리소스를 식별하는 주소
(RFC
 1738)
출처 : https://tools.ietf.org/html/rfc1738
식별
일반
16 /서비스플랫폼개발센터
URN
 (Uniform
 Resource
 Name)
리소스를 식별하는 이름
(RFC
 1630)
출처 : https://tools.ietf.org/html/rfc1630
식별
일반
17 /서비스플랫폼개발센터
URL 문법
스킴://사용자이름:비밀번호@호스트:포트
/경로;파라미터?질의#프래그먼트
식별
일반
18 /서비스플랫폼개발센터
URL 문법
http://d2.naver.com/search/tag
?keyword=d2campus_seminar
ftp://d2user:d2pass@d2.navercom:21/no3
식별
일반
19 /서비스플랫폼개발센터
URL 문법
스킴://사용자이름:비밀번호@호스트:포트
/경로;파라미터?질의#프래그먼트
사용할 프로토콜
식별
일반
20 /서비스플랫폼개발센터
URL 문법
스킴://사용자이름:비밀번호@호스트:포트
/경로;파라미터?질의#프래그먼트
몇몇 스킴은 리소스에 접근하기 위해 사용자 이름 / 비밀번호가 필요하다.
(예 : FTP)
식별
일반
21 /서비스플랫폼개발센터
URL 문법
스킴://사용자이름:비밀번호@호스트:포트
/경로;파라미터?질의#프래그먼트
서버의 호스트 명 또는 IP 주소
식별
일반
22 /서비스플랫폼개발센터
URL 문법
스킴://사용자이름:비밀번호@호스트:포트
/경로;파라미터?질의#프래그먼트
서버가 열어놓은 포트번호
(HTTP의 기본 포트는 80이다.)
식별
일반
23 /서비스플랫폼개발센터
URL 문법
스킴://사용자이름:비밀번호@호스트:포트
/경로;파라미터?질의#프래그먼트
서버 내 리소스 위치
식별
일반
24 /서비스플랫폼개발센터
URL 문법
스킴://사용자이름:비밀번호@호스트:포트
/경로;파라미터?질의#프래그먼트
스킴 파라미터
(주의 : 우리가 흔히 말하는 HTTP
 요청 파라미터가 아니다!)
식별
일반
25 /서비스플랫폼개발센터
URL 문법
스킴://사용자이름:비밀번호@호스트:포트
/경로;파라미터?질의#프래그먼트
스킴에서 애플리케이션에 파라미터를 전달하는데 쓰인다
(쿼리, 쿼리스트링이라고 부른다.)
포맷에 제약사항은 없으나 편의상 ‘’로 나뉜 ‘이름=값’ 쌍 형식을 사용한다.
식별
일반
26 /서비스플랫폼개발센터
URL 문법
스킴://사용자이름:비밀번호@호스트:포트
/경로;파라미터?질의#프래그먼트
리소스의 조각이나 일부분을 가리키는 이름이다.
URL이 특정 객체를 가리킬 경우에 프래그먼트 필드는 서버에 전달되지 않는다.
이는 클라이언트에서만 사용한다.
식별
일반
27 /서비스플랫폼개발센터
포맷 : HTML
어떤 종류의 리소스인가?
포맷
일반
28 /서비스플랫폼개발센터
MIME
 (Multipurpose
 Internet
 Mail
 Extensions)
메시지 엔티티 본문의 컨텐츠를 설명하는
표준화된 이름
출처 : https://tools.ietf.org/html/rfc2045
포맷
일반
29 /서비스플랫폼개발센터
MIME
 타입
출처 : https://tools.ietf.org/html/rfc2046
text image audio video
application multipart message
포맷
일반
30 /서비스플랫폼개발센터
상호작용 : HTTP
HTTP를 통해서
어떻게 상호작용을 하는가?
상호작용
일반
31 /서비스플랫폼개발센터
웹 서버와 클라이언트
HTTP 통신은 TCP/IP를 통해
이루어진다.
상호작용
일반
32 /서비스플랫폼개발센터
웹 서버와 클라이언트
상호작용
Network
 Interfaces
IP
TCP
HTTP
HTTP
데이터링크
 계층
네트워크
 계층
전송
 계층
애플리케이션
 계층
Network
 Interfaces
IP
TCP
TLS
 or
 SSL
HTTPS
데이터링크
 계층
네트워크
 계층
전송
 계층
보안
 계층
HTTP 애플리케이션
 계층
일반
33 /서비스플랫폼개발센터
웹 서버와 클라이언트
HTTP
 요청
HTTP
 응답
클라이언트 서버
상호작용
일반
34 /서비스플랫폼개발센터
웹 서버와 클라이언트
1. 브라우저(클라이언트)에http://d2.naver.com:80/news/6106083
 라고 입력한다.
http://d2.naver.com:80/news/6106083
클라이언트 서버
상호작용
일반
35 /서비스플랫폼개발센터
웹 서버와 클라이언트
2. 브라우저가 호스트 명(d2.naver.com)에 대한 IP 주소와 포트 번호를 얻는다.
http://d2.naver.com:80/news/6106083
클라이언트 서버
117.52.129.49
DNS
 서버
상호작용
일반
36 /서비스플랫폼개발센터
웹 서버와 클라이언트
3. 브라우저가 117.52.129.49의 80번 포트로 TCP
 커넥션을 생성한다.
클라이언트 서버
TCP
 커넥션
IP
 :
 117.52.129.49
80
상호작용

More Related Content

PDF
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
PDF
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
PDF
webservice scaling for newbie
PDF
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
PDF
実践 NestJS
PDF
삶이편해지는_백엔드_개발자_지식.pdf
PDF
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
PPTX
MicrometerとPrometheusによる LINEファミリーアプリのモニタリング
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
webservice scaling for newbie
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
実践 NestJS
삶이편해지는_백엔드_개발자_지식.pdf
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
MicrometerとPrometheusによる LINEファミリーアプリのモニタリング

What's hot (20)

PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
PDF
Windows Registered I/O (RIO) vs IOCP
PDF
NDC12_Lockless게임서버설계와구현
PDF
SQL大量発行処理をいかにして高速化するか
PDF
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
PDF
JVMのGCアルゴリズムとチューニング
PDF
How to build massive service for advance
PDF
これからSpringを使う開発者が知っておくべきこと
PDF
Kubernetesを使う上で抑えておくべきAWSの基礎概念
PDF
テストとリファクタリングに関する深い方法論 #wewlc_jp
PDF
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기
PPTX
로그 기깔나게 잘 디자인하는 법
PDF
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
PDF
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PDF
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PDF
マルチテナント化で知っておきたいデータベースのこと
PDF
카카오톡으로 여친 만들기 2013.06.29
PPTX
Spanner移行について本気出して考えてみた
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Windows Registered I/O (RIO) vs IOCP
NDC12_Lockless게임서버설계와구현
SQL大量発行処理をいかにして高速化するか
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
JVMのGCアルゴリズムとチューニング
How to build massive service for advance
これからSpringを使う開発者が知っておくべきこと
Kubernetesを使う上で抑えておくべきAWSの基礎概念
テストとリファクタリングに関する深い方法論 #wewlc_jp
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기
로그 기깔나게 잘 디자인하는 법
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
マルチテナント化で知っておきたいデータベースのこと
카카오톡으로 여친 만들기 2013.06.29
Spanner移行について本気出して考えてみた
Ad

Viewers also liked (19)

PDF
[D2CAMPUS]JavaScript 다시 시작하기
PDF
[D2 campus]Key-value store 만들기
PDF
[D2 campus]착 하면 척! chak 서비스 개발기
PDF
HTTP 완벽가이드 1장.
PPTX
TCP/IP Protocol - JAVA
PPTX
네트워크의 개념
PDF
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
 
PPTX
MySQL 기초
PDF
웹을 지탱하는 기술
PDF
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
PDF
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
PDF
SPDY : 더 빠른 웹을 위한 프로토콜
PDF
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
PDF
[D2 오픈세미나]3.web view hybridapp
PDF
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
PDF
[D2 오픈세미나]2.모바일웹디버깅
PDF
[D2 오픈세미나]4.네이티브앱저장통신
PDF
더 빠른 웹을 위해: HTTP/2
PDF
[D2 오픈세미나]1.무한스크롤성능개선
[D2CAMPUS]JavaScript 다시 시작하기
[D2 campus]Key-value store 만들기
[D2 campus]착 하면 척! chak 서비스 개발기
HTTP 완벽가이드 1장.
TCP/IP Protocol - JAVA
네트워크의 개념
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
 
MySQL 기초
웹을 지탱하는 기술
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
SPDY : 더 빠른 웹을 위한 프로토콜
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
[D2 오픈세미나]2.모바일웹디버깅
[D2 오픈세미나]4.네이티브앱저장통신
더 빠른 웹을 위해: HTTP/2
[D2 오픈세미나]1.무한스크롤성능개선
Ad

Similar to [D2 CAMPUS]웹 개발자의 스펙 : HTTP (20)

PDF
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
PPTX
HTTP 발표자료 - 김연수
PDF
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
PDF
PDF
WoO 2012-Web 서비스 기술
PDF
HTTP 완벽가이드 : 1-1 http 개관
PDF
Web App Security 2015.10
PDF
Web server page_ed10
PDF
웹을 지탱하는 기술
PPTX
GDG Dev camp 발표자료 - python으로 만들어보는 http서버
PDF
IT 일반기술 강의자료_ed10
PDF
Http 헤더
PDF
서버성능개선 류우림
PDF
웹 서버 실행 환경
PPTX
Web http spec
PPTX
Web http spec(basic)
PPTX
Web http spec
PPTX
Web html spec
PPTX
HTTP 완벽가이드 4장 커넥션관리
PPTX
210320 웹 통신
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
HTTP 발표자료 - 김연수
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
WoO 2012-Web 서비스 기술
HTTP 완벽가이드 : 1-1 http 개관
Web App Security 2015.10
Web server page_ed10
웹을 지탱하는 기술
GDG Dev camp 발표자료 - python으로 만들어보는 http서버
IT 일반기술 강의자료_ed10
Http 헤더
서버성능개선 류우림
웹 서버 실행 환경
Web http spec
Web http spec(basic)
Web http spec
Web html spec
HTTP 완벽가이드 4장 커넥션관리
210320 웹 통신

More from NAVER D2 (20)

PDF
[211] 인공지능이 인공지능 챗봇을 만든다
PDF
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
PDF
[215] Druid로 쉽고 빠르게 데이터 분석하기
PDF
[245]Papago Internals: 모델분석과 응용기술 개발
PDF
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
PDF
[235]Wikipedia-scale Q&A
PDF
[244]로봇이 현실 세계에 대해 학습하도록 만들기
PDF
[243] Deep Learning to help student’s Deep Learning
PDF
[234]Fast & Accurate Data Annotation Pipeline for AI applications
PDF
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
PDF
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
PDF
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
PDF
[224]네이버 검색과 개인화
PDF
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
PDF
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
PDF
[213] Fashion Visual Search
PDF
[232] TensorRT를 활용한 딥러닝 Inference 최적화
PDF
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
PDF
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
PDF
[223]기계독해 QA: 검색인가, NLP인가?
[211] 인공지능이 인공지능 챗봇을 만든다
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[215] Druid로 쉽고 빠르게 데이터 분석하기
[245]Papago Internals: 모델분석과 응용기술 개발
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[235]Wikipedia-scale Q&A
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[243] Deep Learning to help student’s Deep Learning
[234]Fast & Accurate Data Annotation Pipeline for AI applications
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[224]네이버 검색과 개인화
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[213] Fashion Visual Search
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[223]기계독해 QA: 검색인가, NLP인가?

[D2 CAMPUS]웹 개발자의 스펙 : HTTP