åºè«
æ¬çš¿ã¯ å åžåœ¹æè·å¡ãWEBããã°ã©ãã«è»¢è·ãããŸã§ã®ããŒãããã ã®é£èŒèšäºã®äžéšã§ãã
Webã®èŠçŽ
- UI
- 人éåãã®ã€ã³ã¿ãŒãã§ã€ã¹
- ãã€ããŒã¡ãã£ã¢: ããã¹ããç»åçã®ã³ã³ãã³ãããã€ããŒãªã³ã¯ã§æ¥ç¶ããã·ã¹ãã
- ãŠãŒã¶ãŒããªã³ã¯ãèªåã§éžæã§ããïŒéç·åœ¢çæ å ±ååŸïŒ
-
Memex, Xanadu, HyperCard: çžäºãªã³ã¯ïŒè€éïŒ<=>Web: åæ¹åãªã³ã¯ïŒåçŽïŒ- Webãæ®åããã®ã¯ããã®ã·ã³ãã«ããèŠå
- API
- ããã°ã©ã åãã®ã€ã³ã¿ãŒãã§ã€ã¹
- 忣ã·ã¹ãã : è€æ°ã®ã³ã³ãã¥ãŒã¿ã§åŠçã忣ããããšã§å¹ççãªããã°ã©ã å®è¡ãå®çŸïŒ<=> éäžã·ã¹ãã ïŒ
- RPC(忣颿°) < CORBA, DCOM(忣ãªããžã§ã¯ã) < REST(忣ãªãœãŒã¹)
-
SOUP/WS-*: 颿°ãã¡ãœããåäœã®åŒã³åºãïŒç²åºŠå°ïŒ<=>REST: ãªãœãŒã¹ã®ç¶æ ãåŒã³åºãïŒç²åºŠå€§ïŒ- æ å ±ã®ç²åºŠãå°ãããšåŒã³åºãåæ°ãå¢ãããããªãŒããŒãããå¢å€§
- Webãæåããã®ã¯ããªãŒããŒãããã®å°ãããèŠå
REST
-
Representational State Transfer
- HTTPã転éããŠããã®ã¯ãåãªãHyperTextã ãã§ãªãããªãœãŒã¹ç¶æ ã®è¡šçŸãã§ãããšãã䞻匵
RESTã®åºå¹¹ææ³
-
æ¥ç¶æ§
- ãªãœãŒã¹ããªã³ã¯ã§æ¥ç¶ããããšã§1ã€ã®ã¢ããªã±ãŒã·ã§ã³ãæ§æ
- ãã€ããŒã¡ãã£ã¢ãšããŠã®REST
- ã¡ãã£ã¢ãªãœãŒã¹ãžURIãéããŠã¢ã¯ã»ã¹
- 忣ã·ã¹ãã ãšããŠã®REST
- URIãéããŠã¢ããªã±ãŒã·ã§ã³ãªãœãŒã¹åŒã³åºã
RESTfulãªèšèš
- ã¢ãã¬ã¹æå®å¯èœãªURIã§å ¬éãããŠããããš
- ã€ã³ã¿ãŒãã§ã€ã¹ã®çµ±äžããããŠããããšïŒHTTPã¡ãœããã®å©çšïŒ
- ã¹ããŒãã¬ã¹ã§ããããš
-
ã¹ããŒãã¬ã¹: ã¯ã©ã€ã¢ã³ãã®ã¢ããªã±ãŒã·ã§ã³ç¶æ
ããµãŒããŒåŽã§ç®¡çããªãããš
- ã¡ãªãã: ã¯ã©ã€ã¢ã³ãæ°ãå¢å ããŠããµãŒããŒã®ã³ã¹ãã¯å€ãããªã
- ãã¡ãªãã: ãªã¯ãšã¹ãããšã«ãã¹ãŠã®æ å ±ããµãŒããŒãžéä¿¡ãããããéä¿¡ã³ã¹ããããã
- RESTçã«ã¯Cookieã䜿ã£ãã»ãã·ã§ã³ç®¡çã¯æª
- æ¯åæ å ±ãéä¿¡ããªããã°ãªããªãã®ã¯ã³ã¹ããé«ããããå®çšäžã¯ã»ãã·ã§ã³ç®¡çã¯æçšã§ãã
-
ã¹ããŒãã¬ã¹: ã¯ã©ã€ã¢ã³ãã®ã¢ããªã±ãŒã·ã§ã³ç¶æ
ããµãŒããŒåŽã§ç®¡çããªãããš
- åŠççµæãHTTPã¹ããŒã¿ã¹ã³ãŒãã§éç¥ãããããš
URI
-
URI (Uniform Resource Identifier)
- URL(Uniform Resource Locator) + URN(Uniform Resource Name) ã®ç·ç§°
-
URL
- Webäžã§æããã䜿ãããŠããèå¥å
- ãã¡ã€ã³ã«ãããªãœãŒã¹ã®å Žæãæå®
-
URN
- ãã¡ã€ã³ã倿ŽãããšURLã¢ãã¬ã¹ã倿Žããããªã©ã®åé¡ç¹ã解決ããããã«æ€èšããã䜿çš
- äŸ) æžç±ã®ISBNïŒ
urn:isbn:9784774142043
URIã®åºæ¬æ§é
<URIã¹ããŒã >//[[ãŠãŒã¶ãŒå]:[ãã¹ã¯ãŒã]@]<IPã¢ãã¬ã¹ or ãã¹ãå>[:[ããŒãçªå·]][/[ãã¹]][?[ã¯ãšãªãã©ã¡ãŒã¿]][#[URIãã©ã°ã¡ã³ã]]
(äŸ) http://user:pass@example.jp:8000/search?q=test&debug=true#n10
URIã®èšèšæé
- ããã°ã©ãã³ã°èšèªäŸåã®æ¡åŒµåãå©çšããªã
- æ¥æ¬èªãè±èªã®æå®ããããªã©ãè¡šçŸæå®ã®ããã®æ¡åŒµåå©çšã¯ãã
- å®è£ äŸåã®ãã¹åãå©çšããªãïŒcgi-bin, servletãªã©ïŒ
- ããã°ã©ãã³ã°èšèªã®ã¡ãœããåãå©çšããªã
- ã»ãã·ã§ã³IDãå«ããªã
- ãªãœãŒã¹ã衚çŸããåè©ã§æ§æãã
URIå®è£ ã®æ³šæç¹
- çžå¯ŸURIãšçµ¶å¯ŸURI
- ã¯ã©ã€ã¢ã³ãåŽã§çžå¯ŸURIã解決ããã®ã¯é¢åãªã®ã§ãå¯èœãªéã絶察URIã§èšè¿°ãã
- %ãšã³ã³ãŒãã£ã³ã°
- ASCIIæå以å€ãå«ããå Žåã¯UTF-8ã§%ãšã³ã³ãŒãã£ã³ã°ããã®ãåºæ¬
- é·ãå¶é
- InternetExpolorerã®å¶éã§ãã2038ãã€ã以å ã«åããã®ãç¡é£
HTTP
-
HTTP (HypertText Trasfer Protocol)
- ãã€ããŒããã¹ã転éãããã³ã«ãšããŠèŠå®ããããããã³ã«
- å®éã¯ç»åã鳿¥œãªã©ã³ã³ãã¥ãŒã¿ã§æ±ããããŒã¿ã¯å šãŠè»¢éå¯èœ
TCP/IP
HTTPã¯TCP/IPãããŒã¹ãšããéå±€åãããã³ã«
éå±€åãããã³ã«
- ã¢ããªã±ãŒã·ã§ã³å±€: éå±€ã®äžçªäžãã¡ãŒã«ãDNSçã®ã¢ããªã±ãŒã·ã§ã³ããã³HTTPãå®çŸ
- HTTP, NTP, SSH, SMTP, DNS
- ãã©ã³ã¹ããŒãå±€: IPãä¿èšŒããªãã£ãããŒã¿ã®è»¢éãä¿èšŒããéšå
-
UDP (User Datagram Protocol)
- éä¿¡çžæãšã®æ¥ç¶ç¢ºèªãè¡ãããäžæ¹çã«ãã±ãããéãã€ããã³ãã¯ã·ã§ã³ã¬ã¹åã®éä¿¡ãããã³ã«
- ããŒã¿ã®ä¿¡é Œæ§ã«ã¯æ¬ ãããé«é
-
TCP (Transmission Control Protocol)
- æ¥ç¶å ã®çžæã«å¯ŸããŠã³ãã¯ã·ã§ã³ã匵ã
- ã³ãã¯ã·ã§ã³ã䜿ããããŒã¿ã®å°éãä¿èšŒ
- æ¥ç¶å
ã®ã©ã®ã¢ããªã±ãŒã·ã§ã³ã«ããŒã¿ãæž¡ããæ±ºããã®ãããŒãçªå·
- ããŒãçªå·ã¯1ïœ65535
- HTTP: 80çªããŒã
- HTTPS: 443çªããŒã
- SSH: 22çªããŒãïŒå€æŽå¯èœïŒ
- ããŒãçªå·ã¯1ïœ65535
-
UDP (User Datagram Protocol)
- ã€ã³ã¿ãŒãããå±€: ãããã¯ãŒã¯ã§å®éã«ããŒã¿ããããšãããéšå
-
IP (Internet Protocol)
- æå®ããIPã¢ãã¬ã¹ãéãå ãšããŠããã±ããåäœïŒããŒã¿ã®åºæ¬åäœïŒã§ããŒã¿ãéã
- IPã¯ããŒã¿ãéãããšã ããä¿èšŒããæçµçãªéãå ãŸã§å±ããã©ããã¯ä¿èšŒããªã
-
IP (Internet Protocol)
- ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹å±€: éå±€ã®äžçªäžãç©ççãªã±ãŒãã«ããããã¯ãŒã¯ã¢ããã¿ã«çžåœ
- ã€ãŒãµããã
éå±€åãããã³ã«ã®å©ç¹ã»æ¬ ç¹
- å©ç¹
- æ§é ãåçŽãã€æè»
- åæ©èœã®é èœãšç¬ç«ããããŒãžã§ã³ã¢ãããå¯èœ
- ç°çš®ãããã¯ãŒã¯ã®çžäºæ¥ç¶ãå¯èœ
- æ¬ ç¹
- åäœæã®æ§èœãé«ãããããšãã§ããªã
- ã«ãã»ã«ååŠçã«ããã¡ã¢ãªç®¡çã»ããŒã¿ç®¡çãå°é£
OSIåºæ¬åç §ã¢ãã«ãšLAN鿥ç¶è£ 眮
-
OSIåºæ¬åç
§ã¢ãã«
- ããŒã¿éä¿¡ã7ã€ã®å±€ã«åãåããåå±€ã®æ©èœãèŠå®ãããã®
-
LAN鿥ç¶è£
眮
- è£ çœ®ãšè£ 眮ããããã¯ãŒã¯ãšãããã¯ãŒã¯ãã€ãªããžã§ã€ã³ãã®åœ¹å²ãæããè£ çœ®
-
ã²ãŒããŠã§ã€
- ãããã³ã«ã®ç°ãªããããã¯ãŒã¯åå£«ãæ¥ç¶ããè£ çœ®
- äŸ: é»è©±åç·ãšã€ã³ã¿ãŒããããªã©
-
ã«ãŒã¿
- ç¹å®ã®ç«¯æ«ã«å®ãŠãããŒã¿ïŒïŒãã±ããïŒããIPã¢ãã¬ã¹ãåºã«ããŠäžç¶ããè£ çœ®
- ãããã¯ãŒã¯å士ãã€ãªããè€æ°ã®ã«ãŒã¿ãçµç±ããŠããŒã¿ãå¥ã®ãããã¯ãŒã¯äžã«ãã端æ«ã«å±ããããšãã§ãã
-
IPã¢ãã¬ã¹
- ãããã¯ãŒã¯ã«æ¥ç¶ããæ©åšãäžæã«èå¥ããããã®ã¢ãã¬ã¹
-
ããªããž, ã¹ã€ããã³ã°ããïŒã¬ã€ã€2ã¹ã€ããïŒ
- ç¹å®ã®ç«¯æ«ã«å®ãŠãããŒã¿ïŒïŒãã¬ãŒã ïŒããMACã¢ãã¬ã¹ãåºã«ããŠäžç¶ããè£ çœ®
- æ¥ç¶ããã端æ«å士ã¯ã1ã€ã®ãããã¯ãŒã¯ïŒã»ã°ã¡ã³ãïŒãæ§æãã
-
MACã¢ãã¬ã¹ (Media Access Control address)
- ãããã¯ãŒã¯ã«æ¥ç¶ããããã®è£ 眮ãã«ãŒãã«æžã蟌ãŸãã48ãããé·ã®åºæã¢ãã¬ã¹
- åå24ãããïŒ
XX:XX:XXïŒããã³ãIDãåŸå24ãããïŒYY:ZZ:ZZïŒãæ©çš®IDãšã·ãªã¢ã«çªå·ã衚ã -
ARP (Address Resolution Protocol)
- IPã¢ãã¬ã¹ã«å¯Ÿå¿ããMACã¢ãã¬ã¹ãååŸãããããã³ã«
-
ãªããŒã¿
- ç©çå±€ã¬ãã«ã§æ©åšãæ¥ç¶ããä¿¡å·ãå¢å¹ ããŠãããã¯ãŒã¯ã®äŒéè·é¢ãå»¶é·ããè£ çœ®
IPã«ã€ããŠ
-
ãµãããããã¹ã¯
- ãããã¯ãŒã¯ããããå°ããèŠæš¡ã®è€æ°ã®ãããã¯ãŒã¯ã«åå²ããããã®ãããå
-
DHCP (Dynamic Host Configuration Protocol)
- IPã¢ãã¬ã¹ã®å²ãåœãŠãªã©ã®ãããã¯ãŒã¯èšå®äœæ¥ãèªååããããã®ãããã³ã«
-
NAT (Network Address Translation)
- ã°ããŒãã«IPã¢ãã¬ã¹ãšãã©ã€ããŒãIPã¢ãã¬ã¹ã1察1ã§çµã³ã€ããŠãçžäºã«å€æãè¡ãæ©åš
- åæã«ã€ã³ã¿ãŒãããæ¥ç¶ã§ããã®ã¯ãã°ããŒãã«IPã¢ãã¬ã¹ã®åæ°åã®ã¿
-
NAPT (Network Address and Port Translation)
- ã°ããŒãã«IPã¢ãã¬ã¹ã«è€æ°ã®ãã©ã€ããŒãIPã¢ãã¬ã¹ã1察å€ã§çµã³ã€ããŠå€æãè¡ãæ©åšïŒIPãã¹ã«ã¬ãŒããšãåŒã¶ïŒ
- 1ã€ã®ã°ããŒãã«IPã¢ãã¬ã¹ã«å¯ŸããŠè€æ°ã®ã³ã³ãã¥ãŒã¿ãåæã«ã€ã³ã¿ãŒãããæ¥ç¶å¯èœ
- IPã¢ãã¬ã¹ã®ã¯ã©ã¹: IPã¢ãã¬ã¹ã¯äœ¿çšãããããã¯ãŒã¯èŠæš¡ã«ãã£ãŠå€§ãŸãã«3ã€ã®ã¯ã©ã¹ã«åãããã
-
ã¯ã©ã¹A
- å€§èŠæš¡ãããã¯ãŒã¯çš:
0.0.0.0ã127.255.255.255 [ãããã¯ãŒã¯éš8ããã(0.......); ãã¹ãã¢ãã¬ã¹éš24ããã]- ãããã¯ãŒã¯éšã®æå€§å€:
01111111 = 127 - ãã¹ãéš:
224 - 2 = 16,777,214å°ã«å²ãåœãŠå¯èœ- â» ãã¹ãéšãå šãŠ0ã®ã¢ãã¬ã¹ã¯ãããã¯ãŒã¯ã¢ãã¬ã¹ã«äºçŽãããŠããããé€å€
- â» ãã¹ãéšãå šãŠ1ã®ã¢ãã¬ã¹ã¯ãããŒããã£ã¹ãã¢ãã¬ã¹ã«äºçŽãããŠããããé€å€
- å€§èŠæš¡ãããã¯ãŒã¯çš:
-
ã¯ã©ã¹B
- äžèŠæš¡ãããã¯ãŒã¯çš:
128.0.0.0ã191.255.255.255 [ãããã¯ãŒã¯éš16ããã(10......); ãã¹ãã¢ãã¬ã¹éš24ããã]- ãããã¯ãŒã¯éšã®æå€§å€:
10111111 = 191 - ãã¹ãéš:
216 - 2 = 65,534å°ã«å²ãåœãŠå¯èœ
- äžèŠæš¡ãããã¯ãŒã¯çš:
-
ã¯ã©ã¹C
- å°èŠæš¡ãããã¯ãŒã¯çš:
192.0.0.0ã223.255.255.255 [ãããã¯ãŒã¯éš24ããã(110.....); ãã¹ãã¢ãã¬ã¹éš8ããã]- ãããã¯ãŒã¯éšã®æå€§å€:
11011111 = 223 - ãã¹ãéš:
28 - 2 = 254å°ã«å²ãåœãŠå¯èœ
- å°èŠæš¡ãããã¯ãŒã¯çš:
-
ã¯ã©ã¹A
IPã¢ãã¬ã¹æŒç¿
- 以äžã®PCã®ãããã¯ãŒã¯ã¢ãã¬ã¹ãæ±ãã
- IPã¢ãã¬ã¹:
10.170.70.19 - ãµãããããã¹ã¯:
255.255.255.240
- IPã¢ãã¬ã¹:
- 以äžã®ãããã¯ãŒã¯ã«ãããŠå²ãåœãŠå¯èœãªIPã¢ãã¬ã¹ã®ç¯å²ãæ±ãã
- ãããã¯ãŒã¯ã¢ãã¬ã¹:
200.170.70.16 - ãµãããããã¹ã¯:
255.255.255.240
- ãããã¯ãŒã¯ã¢ãã¬ã¹:
HTTPã¡ãã»ãŒãž
ãªã¯ãšã¹ãã¡ãã»ãŒãž
# åºæ¬æ§é
<ã¡ãœãã> <URI> <ãããã³ã«ããŒãžã§ã³> # ãªã¯ãšã¹ãã©ã€ã³
<ããã> # ããã: ã¡ãã»ãŒãžã®ã¡ã¿ããŒã¿ãè€æ°è¡æå®å¯èœ
(空è¡)
[ããã£] # ããã£: ã¡ãã»ãŒãžã®æ¬è³ªçãªæ
å ±
# åçŽãªäŸ
GET /test HTTP/1.1
Host: example.jp:8000
# => http://example.jp:8000/test ã«GETããªã¯ãšã¹ã
ã¬ã¹ãã³ã¹ã¡ãã»ãŒãž
# åºæ¬æ§é
<ãããã³ã«ããŒãžã§ã³> <ã¹ããŒã¿ã¹ã³ãŒã> <ããã¹ããã¬ãŒãº> # ã¹ããŒã¿ã¹ã©ã€ã³
<ããã>
(空è¡)
[ããã£]
# åçŽãªäŸ
HTTP/1.1 200 OK # ãªã¯ãšã¹ããæ£åžžã«åŠçãããããšã瀺ã
Content-Type: application/xhtml+xml; charset=utf-8 # ã¬ã¹ãã³ã¹ã®ã¡ãã£ã¢ã¿ã€ããšæåãšã³ã³ãŒãã£ã³ã°ãæå®
(空è¡)
<html xmls="http://www.w3.org/1999/xhtml">
...
</html>
HTTPã¡ãœãã
HTTP1.1ã§å®çŸ©ãããŠããã¡ãœãã
| ã¡ãœãã | CRUDãšã®å¯Ÿå¿ | æå³ |
|---|---|---|
| POST | Create | åãªãœãŒã¹ã®äœæãããŒã¿ã®è¿œå ç |
| GET | Read | ãªãœãŒã¹ã®ååŸ |
| PUT | Update | ãªãœãŒã¹ã®æŽæ° |
| DELETE | Delete | ãªãœãŒã¹ã®åé€ |
| HEAD | ãªãœãŒã¹ãããïŒã¡ã¿ããŒã¿ïŒã®ååŸ | |
| OPTIONS | ãªãœãŒã¹ããµããŒãããŠããã¡ãœããã®ååŸ | |
| TRACE | ãããã·åäœã®ç¢ºèª | |
| CONNECT | ãããã·åäœã®ãã³ãã«æ¥ç¶ãžã®å€æŽ |
ã¹ãçæ§ãšå®å šæ§
- ã¹ãçæ§
- ããæäœãäœåè¡ã£ãŠãçµæãåãããš
- å®å
šæ§
- ææ»å¯Ÿè±¡ã®ãªãœãŒã¹ã®ç¶æ ãå€åãããªãããšïŒå¯äœçšããªãããšïŒ
| ã¡ãœãã | ã¹ãçæ§ | å®å šæ§ |
|---|---|---|
| GET | â | â |
| PUT | â | Ã |
| DELETE | â | Ã |
| POST | Ã | Ã |
HTTPS
-
HTTPS (Secure HypertText Trasfer Protocol)
- HTTP ã¯ããŒã¿ãéåä¿¡ããããã®ãããã³ã«ã ããéä¿¡äžã®ããŒã¿ã¯æå·åãããŠããããéä¿¡ãååãããå ŽåãããŒã¿ã®äžèº«ããã®ãŸãŸçãŸããŠããŸãåé¡ããã
- ããã¯ç¹ã«ãã¹ã¯ãŒããã¯ã¬ãžããã«ãŒãçªå·çã®å人æ å ±ãéä¿¡ããéã«å€§ããªåé¡ãšãªã
- ãã®éä¿¡äžã®ããŒã¿ã SSL/TLS æå·åããããããã³ã«ã HTTPS ã§ãã
- HTTP ã¯ããŒã¿ãéåä¿¡ããããã®ãããã³ã«ã ããéä¿¡äžã®ããŒã¿ã¯æå·åãããŠããããéä¿¡ãååãããå ŽåãããŒã¿ã®äžèº«ããã®ãŸãŸçãŸããŠããŸãåé¡ããã
SSL/TLS
- SSL (Secure Sockets Layer) ãš TLS (Transport Layer Security) ã¯å ±ã«ãã€ã³ã¿ãŒãããäžã§éä¿¡ãæå·åãã第äžè ã«ããéä¿¡å 容ã®çã¿èŠãæ¹ãããé²ãæè¡ã§ãã
- SSLãšTLSã¯ã倧æ ã®ä»çµã¿ã¯åããã®
- SSLãããŒãžã§ã³ã¢ãããéããŠãSSL 3.0ããšãªãããã®æ¬¡ã®ããŒãžã§ã³ãããTLS 1.0ããšããåç§°ã§åŒã°ããããã«ãªã£ã
- SSLã®åç§°ã¯ã€ã³ã¿ãŒããããŠãŒã¶ã®éã§åºãæ®åããŠãããããTLSãæããŠããŠããSSLãŸãã¯SSL/TLSãšè¡šèšããããšãå€ããªã£ãŠãã
SSLãµãŒãèšŒææž
- åè¿°ã®éããSSLã®åç§°ãåºãæ®åããŠãããããSSL/TLSæè¡ãå©çšããé»åèšŒææžãäžè¬ã« SSLãµãŒãèšŒææž ãšåŒã¶
- SSLãµãŒãèšŒææžãšã¯ãæ
å ±ãæå·åããSSL/TLSã®æ©èœã«å ããWEBãµã€ããéå¶ããçµç¹ã®èº«å
ã確èªã§ããæ©èœãåããé»åèšŒææž
- ã¯ã©ã€ã¢ã³ããšWEBãµãŒãéã®ããŒã¿éä¿¡ã®æå·å
- SSLãµãŒãèšŒææžã®ãç³èŸŒã¿æºåã®éãSSL/TLSãå°å ¥ãããµãŒãã§ãå ¬ééµããšãç§å¯éµããçæãã
- ã¯ã©ã€ã¢ã³ãïŒãã©ãŠã¶ãªã©ïŒã¯SSLãµãŒãèšŒææžã«å«ãŸãããå ¬ééµããå©çšããŠå ¥åæ å ±ãæå·åãããµãŒãã«ãªã¯ãšã¹ãããŒã¿ãéä¿¡ãã
- ããŒã¿ããµãŒãã«å°çããåŸã¯ããµãŒãåŽã§ä¿ç®¡ããŠãããç§å¯éµãã䜿ã£ãŠããŒã¿åŸ©å·ãè¡ãæ å ±ãè§£èªãã
- WEBãµã€ãéå¶çµç¹ã®èº«å蚌æ
- ãµãŒããšã¯ã©ã€ã¢ã³ãïŒãã©ãŠã¶ãªã©ïŒãSSL/TLSã«ããéä¿¡ãå§ãããšãã¯ããŸããµãŒãããSSLãµãŒãèšŒææžããã¯ã©ã€ã¢ã³ãã«éä¿¡ãã
- ã¯ã©ã€ã¢ã³ãã¯ãã®èšŒææžã調ã¹ã次ã®ããšã確èªãã
- èšŒææžãæ£ãããèªèšŒå±ãïŒDigiCert, GlobalSign, Let's Encrypt çïŒããçºè¡ãããŠããã
- ä»éä¿¡ããŠãããµãŒãããèšŒææžã«èšèŒãããŠãããµãŒããšäžèŽããŠããã
- æ£ãããµãŒãã§ãããšç¢ºèªã§ããã°ãå®å¿ããŠéä¿¡ãå§ããããšãã§ãã
- ã¯ã©ã€ã¢ã³ããšWEBãµãŒãéã®ããŒã¿éä¿¡ã®æå·å
SSH
-
ssh (Secure Shell)
- é éããã³ã³ãã¥ãŒã¿ãæäœããããã®ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹
- ãµãŒãã³ã³ãã¥ãŒã¿ãæäœããå Žåã¯åºæ¬çã«ãã®ã·ã§ã«ã䜿ã£ãŠã³ãã³ããå®è¡ãã
- å ¬é鵿å·ãšç§å¯éµæå·ãçµã¿åãããŠéä¿¡çµè·¯ãæå·åãããã¹ã¯ãŒããªã©ã®èªèšŒæ å ±ãå ¥åãããã³ãã³ããåºåãããåŠççµæãªã©ããã¹ãŠæå·åããŠéåä¿¡ããããšãå¯èœ
-
sshd (ssh daemon)
- UNIXç³»OSãªã©ã§ãå€éšããã® ssh ã«ããæ¥ç¶ãåãä»ããåžžé§ããã°ã©ã ã®ããšãæ £ç¿çã« sshd ãšåŒã¶
- sshd 㯠ssh ã¯ã©ã€ã¢ã³ãããã®æ¥ç¶èŠæ±ãåãä»ããéä¿¡çµè·¯ã®æå·åãå©çšè ã®èªèšŒãæäœã³ãã³ãã®åä¿¡ãšå®è¡ãªã©ãè¡ãªã
-
scp (secure copy / secure copy protocol)
- ãããã¯ãŒã¯ãä»ããŠå¥ã®ã³ã³ãã¥ãŒã¿ãæäœããsshã®æ©èœã®äžã€ã§ãæå ã®ã³ã³ãã¥ãŒã¿ãšã®éã§ãã¡ã€ã«ãã³ããŒãããã®ïŒããã³ãã®ãããã³ã«ïŒ
- scp 㯠ssh äžã§ã®ãã¡ã€ã«ã³ããŒæ©èœã§ãæ¥ç¶å ã®ã³ã³ãã¥ãŒã¿ãšã®éã§å®å šã«ãã¡ã€ã«ã®éåä¿¡ãè¡ãã
- scp ã®ã³ãã³ãã®åœ¢åŒãªã©ã¯UNIXã®æšæºãã¡ã€ã«ã³ããŒã³ãã³ãã§ãã
cpãrcpãšã»ãŒåãã§ãããããšåãæèŠã§äœ¿ãããšãã§ãã - äžæ¹ãssh äžã§ãã¡ã€ã«è»¢éãè¡ãªãã³ãã³ãããã³ãããã³ã«ã«ã¯ SFTP ãšåŒã°ãããã®ãããããã㯠FTP ã«äŒŒãã³ãã³ãäœç³»ã§æäœããããšãã§ãã
FTP, FTPS, SFTP ã®éã
-
FTP (File Transfer Protocol)
- ãã¡ã€ã«è»¢éå°çšã®ãããã³ã«ã§ãFTPãµãŒããå¥éæ§ç¯ããå¿ èŠããã
- ã¯ã©ã€ã¢ã³ãåŽ (èªåã®ããœã³ã³) ããFTPãµãŒããŒãžãã¡ã€ã«ãã¢ããããŒãããããéã«ãã¡ã€ã«ãããŠã³ããŒããããããäºãã§ãã
- FTP 㯠HTTP ããå€ããã䜿çšãããŠãããããã³ã«ã®ããã»ãã¥ãªãã£ã®ããšãããŸãèæ
®ãããŠããªã
- éä¿¡ããããã¡ã€ã«ããŒã¿ãå¹³æã®ãŸãŸã§æå·åãããŠããªã
- FTPãµãŒããŒã«ãã°ã€ã³ããããã«çšããããŠãŒã¶ãŒåãããã¹ã¯ãŒãããå¹³æã§ãããšãããã
- ãã®ãã FTP ã®ã»ãã¥ãªãã£å¯Ÿççšã«äœãããã®ã FTPSã»SFTP ã§ãã
-
FTPS (File Transfer Protocol over SSL/TLS)
- FTPS 㯠HTTPS ãšåã SSL/TLS ã®æå·åã»èªèšŒã䜿ãããŠãã
- HTTP ã«å¯Ÿãã HTTPS, FTP ã«å¯Ÿãã FTPS ã®ã€ã¡ãŒãž
- ãããŸã§ FTP ã®æ¡åŒµã§ãããããFTPãµãŒããå¥éæ§ç¯ããå¿ èŠããã
- ãã®ãããæ§ç¯ã®æéãæãããã
- FTPS 㯠HTTPS ãšåã SSL/TLS ã®æå·åã»èªèšŒã䜿ãããŠãã
-
SFTP (SSH File Transfer Protocol)
- SSHã§æå·åãããŠäœãããéä¿¡è·¯ãéã£ãŠå®å šã«ãã¡ã€ã«éåä¿¡ãè¡ããããã³ã«
- çŸåšã¯ãSSHã®æšæºæ©èœãšããŠä»å±ããŠãããããåºæ¬çã«SFTPã®ã¿äœ¿ã£ãŠããã®ãå®å
šã§ç°¡åã§ãã
- å¥éFTPãµãŒãã建ãŠãå¿ èŠã®ãã FTP, FTPS ããããŠéžæããæå³ã¯ããŸããªã
- FTP, FTPS ãéžæããå Žé¢ããããšããã°ããã¡ã€ã«è»¢éã«äœ¿ãã¯ã©ã€ã¢ã³ããœãããŠã§ã¢ã«å¶éãããå Žåã§ãã
ãã¡ã€ã³
ãã¡ã€ã³ãšåå解決
-
åå解決
- ãã¡ã€ã³åãIPã¢ãã¬ã¹ã«å€æããä»çµã¿ã®ããš
- åå解決ãå¿
èŠãªçç±
- ãµãŒããŒãPCã«ã¯ãã³ã³ãã¥ãŒã¿ãèå¥ããããã®çªå·ã§ãããIPã¢ãã¬ã¹ããå²ãæ¯ãããŠãã
- IPã¢ãã¬ã¹ã¯
123.45.67.89ãªã©ã®ããã«æ°åã.ã§åºåã£ããã®ã§ãã
- IPã¢ãã¬ã¹ã¯
- ããŒã ããŒãžãã¡ãŒã«ãå©çšãããšãããã®IPã¢ãã¬ã¹ãæå®ãããšçŽæ¥ãµãŒããŒã«ã¢ã¯ã»ã¹ããããšãã§ãã
- ããããå šãŠã®IPã¢ãã¬ã¹ãèŠããŠããã®ã¯çŸå®çã§ã¯ãªãããããã¡ã€ã³åã®åå解決ãšããä»çµã¿ã䜿ããã
- ãµãŒããŒãPCã«ã¯ãã³ã³ãã¥ãŒã¿ãèå¥ããããã®çªå·ã§ãããIPã¢ãã¬ã¹ããå²ãæ¯ãããŠãã
hostsãã¡ã€ã«
- 1970幎代ãä»ã®ã€ã³ã¿ãŒãããã®ååãšãªã£ãARPAnetïŒAdvanced Research Projects AgencyïŒç±³åœåœé²ç·çé«çç ç©¶èšç»å±ïŒã§ã¯ãåå解決ã«
HOSTS.TXTãšããããã¹ãã»ãã¡ã€ã«ãå©çšããŠãã- UNIX/Linux ã®
/etc/hostsãã¡ã€ã«ã¯ããã®åæ®ã§ãã - Windows OS ã«ã
%Systemroot%\System32\drivers\etc\hostsãšããåœ¢ã§æ®ãããŠãã - ããŒã«ã«WEBéçºæã«ã¯ä»ããã®ãã¡ã€ã«ãå©çšããŠåå解決ããããšãå€ã
- UNIX/Linux ã®
-
HOSTS.TXTã®ãã©ãŒããã127.0.0.1 localhost 211.2.246.25 ITPRO-WWW- 1è¡ã«ãIPã¢ãã¬ã¹ããšããã¹ãåãã®å¯ŸãèšèŒãããŠãã
- çŸåšUNIXãªã©ã§äœ¿çšããŠãã hosts ãã¡ã€ã«ãšãã©ãŒãããã¯ã»ãŒåã
- ãã®ãã¡ã€ã«ãèªåã®ãã·ã³ã«çœ®ããŠããã°ã䜿çšããã¢ããªã±ãŒã·ã§ã³ïŒãã©ãŠã¶ïŒã
HOSTS.TXTã«å šææ€çŽ¢ããããŠãæå®ãããã¹ãåã«å¯Ÿå¿ããIPã¢ãã¬ã¹ãèªã¿èŸŒã¿ããã®IPã¢ãã¬ã¹ã«æ¥ç¶ããããšãã - ARPAnetäžã®ãã¹ãŠã®ãã¹ãæ
å ±ãåãã
HOSTS.TXTã¯ãStanford Research InstituteïŒSRIïŒã® Network Information CenterïŒNICïŒã«ãã£ãŠç®¡çãããŠãã- ARPAnetã«æ°ãããã¹ããå ãããšããã®æ
å ±ããNICã
HOSTS.TXTã«åæ ããŠãã - ãããŠãææ°ã®
HOSTS.TXTãããSRI-NICããšãããã¹ãã«çœ®ããå¿ èŠãªäººéïŒã»ãã®ãã¹ããšéä¿¡ãããããã«ãåå解決ãããããŠãŒã¶ãŒïŒã¯ãSRI-NICããææ°ã®HOSTS.TXTãFTPïŒFile Transfer ProtocolïŒã§ååŸããŠãèªåã®ãã¹ãã«çœ®ããšããæµãã§åå解決ãè¡ã£ãŠãã
- ARPAnetã«æ°ãããã¹ããå ãããšããã®æ
å ±ããNICã
- åœåãARPAnetã«ã¯ããããæ°çŸå°ã®ãã¹ããããªãã£ãããããããäžã®ãã¹ãæ
å ±ãã¹ãŠãã1ã€ã®
HOST.TXTãã¡ã€ã«ã«èšèŒããŠããããšãå¯èœã ã£ã - ããããARPAnetãçŸåšã®ã€ã³ã¿ãŒãããã«è¿ã圢ã«ãªã£ã1983幎ã«ã¯ããã¹ãæ°ã¯ãããæ°äžå°ã§ãSRI-NICã®FTPãµãŒãã¹ã¯å®å šãªéè² è·ç¶æ ã«ãªã£ãŠãã
- äžèšã®ãããªçµç·¯ã«ãããçŸåšãã¡ã€ã³ã®åå解決㯠DNS ãµãŒãã«ãã£ãŠè¡ããã圢ãšãªã£ã
hosts ãã¡ã€ã«æŒç¿
å®éã« hosts ãã¡ã€ã«ãæžãæããŠãåå解決ã®ä»çµã¿ãäœæãã
-
Chrome çã®ä»»æã®ãã©ãŠã¶ã§ http://www.google.com ã«ã¢ã¯ã»ã¹
- æ®éã«GoogleããŒã ããŒãžã衚瀺ããã
-
Public DNS Server List ã®äžããHTTPã¢ã¯ã»ã¹ã§ããããªIPã¢ãã¬ã¹ãããã¯ã¢ãããã
- ããã§ã¯ãã©ã³ã¹ã®WEBåºåäŒç€Ÿã®ãµã€ãããã
91.121.143.182ãéžæ - äžèšIPã¢ãã¬ã¹ã¯ãã£ãšæ¥ç¶å¯èœã§ããä¿èšŒã¯ãªããããå¿ ããRecentrly checkedãã®äžèЧã«ããIPã¢ãã¬ã¹ãéžã¶ããš
- ããã§ã¯ãã©ã³ã¹ã®WEBåºåäŒç€Ÿã®ãµã€ãããã
-
hosts ãã¡ã€ã«ã«ãwww.google.comããšãããã¯ã¢ããããIPã¢ãã¬ã¹ããçŽã¥ããèšå®ãèšè¿°ãã
-
Win + X|>A=> 管çè æš©é PowerShell èµ·å: 以äžã®ã³ãã³ããå®è¡
-
# hosts ãã¡ã€ã«ã« IP ãš ãã¡ã€ã³å ã®çŽã¥ãèšå®ã远èšïŒã¡ã¢åž³ã§ç·šéïŒ
## - IP: ä»å㯠91.121.143.182
## - ãã¡ã€ã³å: www.google.com
## Windows ã® hosts ãã¡ã€ã«: C:\Windows\System32\drivers\etc\hosts
> notepad C:\Windows\System32\drivers\etc\hosts
### <hosts>
# 以äžã®è¡ã远èš
91.121.143.182 www.google.com
### </hosts>
# hosts ãã¡ã€ã«ã®èšå®ãã·ã¹ãã ã«åæ
> ipconfig /flushdns
-
åã³ãã©ãŠã¶ã§ http://www.google.com ã«ã¢ã¯ã»ã¹
- 匷å¶çã« https:// ã«ãªãã€ã¬ã¯ããããŠããŸãå Žåã¯ãã·ãŒã¯ã¬ããã¢ãŒãçã§ã¢ã¯ã»ã¹ããŠã¿ã
- GoogleããŒã ããŒãžã§ã¯ãªããããã¯ã¢ããããIPã¢ãã¬ã¹ã®ãµã€ãã衚瀺ãããã¯ã
- ãã®ãŸãŸã ãšGoogleã䜿ããªããªã£ãŠããŸããããåã³ hosts ãã¡ã€ã«ãç·šéããŠãçŽã¥ãèšå®ãåé€ããŠãã
DNS (Domain Name System)
- DNSã¯ã
HOSTS.TXTã«ãããã¡ã€ã³åå解決ã®äžå 管çã®åé¡ç¹ã解決ããããã«äœãããã·ã¹ãã - DNSã¯ãã«ãŒããŸãŒã³ãèµ·ç¹ãšããããªãŒæ§é ãæã€ãäžçäžã«ååšãã倿°ã®ãµãŒããå調ããã£ãŠåäœãã忣ããŒã¿ããŒã¹
- ãããã®DNSãµãŒã矀ã«ã¢ã¯ã»ã¹ããããšã§ããã¹ãåããIPã¢ãã¬ã¹ãæ€çŽ¢ããããã¡ãŒã«ã¢ãã¬ã¹ããéä¿¡å ã¡ãŒã«ãµãŒããç¹å®ããããã
- DNSã§ã¯ãããç¹å®ã®ãµãŒã1å°ããã¡ã€ã³åæ å ±ããã¹ãŠæã£ãŠããããã§ã¯ãªãããå§ä»»ããšåŒã°ããä»çµã¿ã§ããŒã¿ãéå±€ããšã«åæ£åãã䜵ããŠãµãŒãã®åé·åãå®çŸããŠãã
- DNSã¯ã©ã€ã¢ã³ããããŒã¿ãåŸããšãã¯ããã®å§ä»»ãã«ãŒããŸãŒã³ããé æ¬¡ãã©ã£ãŠããããšã§ãæçµçã«å¿ èŠãªæ å ±ãåŸã
- åå解決ã§èµ·ç¹ãšãªãã«ãŒããŸãŒã³ã管çãããµãŒãã¯ãã«ãŒãããŒã ãµãŒãããšåŒã°ããäžçã«13æ©ååšãã
DNSã«ãŒããŸãŒã³ã®ããŒã¿ããŒã¹äŸ
| ãã¡ã€ã³ | çš®å¥ | å€ (IPã¢ãã¬ã¹) | TTL |
|---|---|---|---|
| com. | NS | a.gtld-servers.net. | 172800 |
| com. | NS | b.gtld-servers.net. | 172800 |
| com. | NS | c.gtld-servers.net. | 172800 |
| : | : | : | : |
| a.gtld-servers.net. | A | 192.5.6.30 | 172800 |
| b.gtld-servers.net. | A | 192.33.14.30 | 172800 |
| c.gtld-servers.net. | A | 192.26.92.30 | 172800 |
| : | : | : | : |
DNSãã£ãã·ã¥ãµãŒã
- åå解決ã®éãæ€çŽ¢ã®èµ·ç¹ãšãªãã«ãŒãããŒã ãµãŒãã«ã¯ãæ€çŽ¢ã®ãã³ã«åãåããããããããšã«ãªã
- ãããããšDNSã®åå解決ãè¡ãäžçäžã®ã¯ã©ã€ã¢ã³ãPCãããã«ãŒããµãŒããžå€§éã®åãåãããããŠããŸã
- ã¯ã©ã€ã¢ã³ãPCããèŠãå Žåãåå解決ã®ãã³ã«å€æ°ã®ãµãŒãã«å¯ŸããŠåãåãããè¡ãããã®åçãåŸ ã€ã®ã«æéãããã
- äžèšåé¡ã軜æžãããããDNSã§ã¯ãã£ãã·ã¥ãšåŒã°ããä»çµã¿ã«ãã£ãŠãæé ãç°¡ç¥åããããšãã§ããããã«ãªã£ãŠãã
- äŸãã°ãã¯ã©ã€ã¢ã³ãPCããã§ã«
www.example.jpã®IPã¢ãã¬ã¹æ å ±ãåŸãŠããå Žåããããåå©çšããããšã§ãååè§£æ±ºã®æé ãçç¥ã§ãã - åæ§ã«ãã¯ã©ã€ã¢ã³ãPCãšDNSãµãŒãã®éã«ãåå解決æžã¿ã®æ å ±ãä¿æãã DNSãã£ãã·ã¥ãµãŒã ã眮ãããšã§åå解決ãé«éåããŠãã
- äŸãã°ãã¯ã©ã€ã¢ã³ãPCããã§ã«
DNSãã£ãã·ã¥ãšTTL
- DNSã¯åæ£ããŒã¿ããŒã¹ã§ããããã®ããŒã¿ã¯ä»»æã®ã¿ã€ãã³ã°ã§å€æŽãããå¯èœæ§ããã
- ãã®ãããã¯ã©ã€ã¢ã³ãPCããã£ãã·ã¥ãµãŒããæå ã«æ®ãããã£ãã·ã¥ããã£ãšäœ¿çšããŠãããšãå®éã®ç¶æ ãšäžæŽåãèµ·ãã
- äžèšåé¡ã解決ãããããDNSã§ã¯ãã©ã®ãããã®æéãŸã§ãã£ãã·ã¥ãšããŠå©çšããŠãããããšãããTTL (Time To Live) ãšåŒã°ãããã©ã¡ãŒã¿ããããããã®ããŒã¿(ã¬ã³ãŒã)ã«èšå®ãããŠãã
ã¬ã³ãŒãã®æžãæããšãã£ãã·ã¥
- TTLã®ä»çµã¿ã«ããã宿çã«ãã£ãã·ã¥ãæŽæ°ãããããšã«ãªã£ãŠããããã¿ã€ãã³ã°ã«ãã£ãŠã¯å€ãæ
å ±ãåç
§ããŠããŸãå Žåããããããã¬ã³ãŒãæžãæãã®éã«æžæã£ãŠããŸãäŸãæ£èŠããã
- äŸãã°WEBãµã€ããéå¶ããŠãããµãŒããæ°ããããéã¯ããã¡ã€ã³ãšIPã¢ãã¬ã¹ã®çŽã¥ããåãæ¿ããå¿ èŠããã
- ãããã£ãå Žåãçµç±ãããã£ãã·ã¥ãµãŒãããTTL æéäžã®ãã£ãã·ã¥ïŒå€ãæ å ±ïŒããã£ãŠãããšããµãŒããåãæ¿ãã£ãŠããªãããã«èŠãã
- ãã®åé¡ã¯ãDNSåãæ¿ãïŒãã¡ã€ã³ãšIPã¢ãã¬ã¹ã®çŽã¥ãèšå®ã®æŽæ°ïŒåã«ãTTL ãååçãããŠããããšã§ããçšåºŠè»œæžã§ãã
DNSåãæ¿ãã®æµžéæéãšããè¿·ä¿¡
- ãããäžã®æ å ±ã®äžã«ã¯ãDNSåãæ¿ããæµžéããã®ã«æå€§ã§3æ¥ä»¥äžãããå Žåãããããªã©ã®ãããªããæ å ±ããã
- ããã¯ãDNSãã£ãã·ã¥ãš TTL ã®ä»æ§ãããåãã£ãŠããªã人éãåºããè¿·ä¿¡ã§ãã
- 倧æã®DNSãã£ãã·ã¥ãµãŒãã®äžã«ã¯ TTL ãã£ãã·ã¥æéãå®ããããã£ãšãã£ãã·ã¥ãä¿æããŠãããããªãµãŒãããã£ãããããããã£ãäºæ ã絡ãã§ãããããããªã
- çŸåšã®DNSãã£ãã·ã¥ãµãŒãã¯ãåºæ¬çã«ã¡ãããš TTL ãå®ã£ãŠãã£ãã·ã¥ãä¿æããŠãããããDNSåãæ¿ãã« TTL æé以äžã®æéãããããšã¯ãªã
- DNSåãæ¿ãã®éã¯ãäžçã®äž»èŠãªDNS(ãã£ãã·ã¥)ãµãŒãã®åç §ããŠããããŒã¿ã確èªããã®ãè¯ã
ã¬ãžã¹ããªãšã¬ãžã¹ãã©
-
ã¬ãžã¹ããª
- ãããã¬ãã«ãã¡ã€ã³ïŒ
.com,.net,.jpãªã©ïŒã管çã»éçšããŠããå ç· ãçµç¹ - 1,000以äžãããããã¬ãã«ãã¡ã€ã³ããšã«ã¬ãžã¹ããªãååšãã
- ã¬ãžã¹ããªã¯ ICANN ããèªå®ãåããå¿
èŠããã
- ICANN: å šäžçã®ãã¡ã€ã³ãšIPã¢ãã¬ã¹ãçµ±æ¬ããã¢ã¡ãªã«ã®éå¶å©æ³äºº
-
ã¬ãžã¹ããªã®åœ¹å²
- ç³è«èŠæ±ã®ãã£ããã¡ã€ã³åã«ç©ºãããããã©ãã確èªããæ°èŠçºè¡ãã
- ãã¡ã€ã³åãšãã¡ã€ã³ç³è«è
ã®é¢é£æ
å ±ã ã¬ãžã¹ããªããŒã¿ããŒã¹ ãšããŠç®¡çãã
- ãã®ããŒã¿ããŒã¹ã¯ WHOIS æ å ±ãšåŒã°ãã
- DNSããŒã¿ããŒã¹ãšã¯å¥ç©ãªã®ã§æ³šæ
- DNSãµãŒããéçšããŠãããååè§£æ±ºèŠæ±ãæ¥ãéã¯ãäžäœã®ã«ãŒãããŒã ãµãŒãã«åãåãããè¡ã
- ãããã¬ãã«ãã¡ã€ã³ïŒ
-
ã¬ãžã¹ãã©
- ãã¡ã€ã³ãäžè¬ãŠãŒã¶ãŒã«åããŠè²©å£²ããæ¥è
ïŒãåå.com ã ã ãŒã ãŒãã¡ã€ã³ ãªã©ïŒ
- 掻åããé㯠ICANN ãšå¥çŽãçµã¶å¿ èŠããã
- ã¬ãžã¹ãã©ã¯å¥çŽããŠããã¬ãžã¹ããªã®ããŒã¿ããŒã¹ã«çŽæ¥æ å ±ã®åãåãããããæš©éãã£ãŠãã
- ã¬ãžã¹ãã©ã¯ãã¡ã€ã³ã®è²©å£²äŸ¡æ Œããªãã·ã§ã³ãµãŒãã¹ãèªåšã«æ±ºããããäžè¬ãŠãŒã¶ãŒåŽã¯éœåã®è¯ãã¬ãžã¹ãã©ãéžãã§è³Œå ¥ãã
- ãã¡ã€ã³ãäžè¬ãŠãŒã¶ãŒã«åããŠè²©å£²ããæ¥è
ïŒãåå.com ã ã ãŒã ãŒãã¡ã€ã³ ãªã©ïŒ




