http

    HTTP and TLS(SSL)

    1. HTTP vs HTTPS - HTTP(Hypertext Transfer Protocol) : ์ „์†ก์ค‘ ์•”ํ˜ธํ™” X, 80 Port - HTTPS(HTTP Secure) : ์ „์†ก์ค‘ ์•”ํ˜ธํ™” O, 443 Port - ํ•ด์ปค๊ฐ€ HTTP ํŒจํ‚ท์„ ๊ฐˆ์ทจํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ํ‰๋ฌธ์˜ ์ •๋ณด๋“ค์ด ๋ณด์ด์ง€๋งŒ HTTPS ํŒจํ‚ท์€ ์•”ํ˜ธํ™”๋˜์–ด์„œ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ ํ–ฅ์ƒ(๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๊ฐ€ ๋งŒ์•ฝ HTTP๋ผ๋ฉด์€ ๋‚˜์˜ ๋กœ๊ทธ์ธ ์ •๋ณด๊ฐ€ ๋‹ค ๋ณด์ด๊ฒŒ ๋œ๋‹ค๋Š”...?! ํ˜„์žฌ๋Š” ์ค‘์š” ํŽ˜์ด์ง€ ์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์ธ, ๊ฒฐ์ œ ๊ด€๋ จ ํŽ˜์ด์ง€๋Š” ๋ฌด์กฐ๊ฑด HTTPS๋ฅผ ์‚ฌ์šฉ) Handshake ๋Œ€๋ถ€๋ถ„์˜ ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฒฐ์ •, ํ‚ค ์ „๋‹ฌ, ์ธ์ฆ ๋ฉ”์„ธ์ง€ ์ „๋‹ฌ์„ ๋‹ด๋‹น Change Cipher Spec SSL ์•”ํ˜ธํ™” ํ†ต์‹  ์‹œ ์‚ฌ์šฉํ•  ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค์ • ๊ทœ์•ฝ์ด..

    HTTP Method(GET/POST)

    1. GET ์„œ๋ฒ„์ธก์— ์ •๋ณด ์š”์ฒญ ์š”์ฒญํ•˜๋Š” data๊ฐ€ url ๋’ค์— ๋ถ™์Œ data๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ผ๊ณ  ํ•˜์—ฌ url ๋’ค '?', '&'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜ํƒ€๋ƒ„ data์— ์ œํ•œ์ด ์žˆ์Œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์–ธ์–ด๋Š” url encoding์„ ๋”ฐ๋ผ์•ผ ํ•จ ์ƒ๋Œ€์ ์œผ๋กœ ๋น ๋ฆ„ GET์ด ๋™์ž‘ํ•จ์œผ๋กœ์จ ์›น ์„œ๋ฒ„์—์„œ ๋‹จ์ˆœ data๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ด ์บ์‹ฑ ๊ฐ€๋Šฅ ex) ๊ฒ€์ƒ‰์‹œ https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=get+post+%EC%B0%A8%EC%9D%B4 > ๋„ค์ด๋ฒ„์—์„œ 'get post ์ฐจ์ด'๋ฅผ ๊ฒ€์ƒ‰ํ•ด url์ด ๋ฐ”๋€œ 2. POST ์„œ๋ฒ„์ธก์— ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ „๋‹ฌ ์š”์ฒญํ•˜๋Š” data๊ฐ€ body์— ํฌํ•จ data์— ์ œํ•œ์ด ์—†์Œ message encoding์„ ๋”ฐ๋ผ์•ผ ํ•จ ti..

    HTTP Header

    1. ๊ณตํ†ต Data : HTTP Message๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ์‹œ๊ฐ„ Pragma : ์บ์‹œ ์ œ์–ด(HTTP/1.0) Cache-Control : ์ฃผ๋กœ Response์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ ์บ์‹œ ์ œ์–ด(HTTP/1.1) - no-store : ์•„๋ฌด๊ฒƒ๋„ ์บ์‹œํ•˜์ง€ ์•Š์Œ - no-cache : ๋ชจ๋“  ์บ์‹œ๋ฅผ ์“ฐ๊ธฐ ์ „์— ์„œ๋ฒ„์— ํ•ด๋‹น ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋˜๋Š”์ง€ ํ™•์ธ - no-transform : ์‘๋‹ต์— ๋Œ€ํ•œ ๋ณ€ํ˜„์ด๋‚˜ ๋ณ€ํ™˜์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ - only-if-cached : ๋ฌด์กฐ๊ฑด ์บ์‹œ๋ฅผ ์‚ฌ์šฉ - must-revalidate : ๋งŒ๋ฃŒ๋œ ์บ์‹œ๋งŒ ์„œ๋ฒ„์—์„œ ํ™•์ธ์„ ๋ฐ›๋„๋ก ํ•จ - proxy-revalidate : must-revalidate์™€ ๋™์ผํ•˜์ง€๋งŒ ๊ณต์œ  ์บ์‹œ์—๋งŒ ์ ์šฉ - public : ๊ณต์œ  ์บ์‹œ(๋˜๋Š” ์ค‘๊ฐœ ์„œ๋ฒ„)์— ์ €์žฅํ•ด๋„ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ ..

    HTTP Response Code

    1. 1xx(์กฐ๊ฑด๋ถ€ ์‘๋‹ต, Request ์ฒ˜๋ฆฌ ์ค‘) 100(Continue, ๊ณ„์†): ์š”์ฒญ์ž๋Š” ์š”์ฒญ์„ ๊ณ„์†ํ•ด์•ผ ํ•œ๋‹ค. ์„œ๋ฒ„๋Š” ์ด ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์š”์ฒญ์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์„ ๋ฐ›์•˜์œผ๋ฉฐ ๋‚˜๋จธ์ง€๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. 101(Swithching Protocols, ํ”„๋กœํ† ์ฝœ ์ „ํ™˜): ์š”์ฒญ์ž๊ฐ€ ์„œ๋ฒ„์— ํ”„๋กœํ† ์ฝœ ์ „ํ™˜์„ ์š”์ฒญํ–ˆ์œผ๋ฉฐ ์„œ๋ฒ„๋Š” ์ด๋ฅผ ์Šน์ธํ•˜๋Š” ์ค‘์ด๋‹ค. 102(Processing, ์ฒ˜๋ฆฌ, RFC 2518) 2. 2xx(์„ฑ๊ณต, Request ์ฒ˜๋ฆฌ ์™„๋ฃŒ) 200(OK, ์„ฑ๊ณต): ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ–ˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด๋Š” ์ฃผ๋กœ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญํ•œ ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ–ˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ์“ฐ์ธ๋‹ค. 201(Created, ์ž‘์„ฑ๋จ): ์„ฑ๊ณต์ ์œผ๋กœ ์š”์ฒญ๋˜์—ˆ์œผ๋ฉฐ ์„œ๋ฒ„๊ฐ€ ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค. 202(Accepted, ํ—ˆ์šฉ๋จ): ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„..

    HTTP Message

    1. HTTP - TCP/UDP ๊ธฐ๋ฐ˜์œผ๋กœ ์›น์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ 2. Message - Request Message : ์›น ํด๋ผ์ด์–ธํŠธ > ์›น ์„œ๋ฒ„ (์‚ฌ์šฉ์ž์˜ ๋ชฉ์ ์— ๋”ฐ๋ผ 9๊ฐœ์˜ Methods๋ฅผ ์‚ฌ์šฉ) - Respose Message : ์›น ํด๋ผ์ด์–ธํŠธ < ์›น ์„œ๋ฒ„ - Message ๊ตฌ์„ฑ ํ˜•ํƒœ : Request/Response Line + Header + Blank Line + Body 1. Request/Response Line - Request : Request Method + Request URI + HTTP Version - Response : HTTP Version + Response Code + Response Message 2. Header - Request : Host, Accept, Acc..