MapleStory Cookie With Halo

โ˜ Network/๐ŸŒ HTTP 8

[HTTP]์‘๋‹ต ๋ฐ์ดํ„ฐ-html & json

html ๋ฐ˜ํ™˜ํ•˜๊ธฐ  ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ ๊ธฐ๋ณธ ์ƒ์„ฑ๋œ ํ”„๋กœ์ ํŠธApplication์—  @ServletComponentScan ์„ ๋‹ฌ์•„์ค€๋‹ค.→ ์„œ๋ธ”๋ฆฟ์„ ์ฐพ์•„ ์„œ๋ธ”๋ฆฟ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด์•„์ค€๋‹ค. code๊ฒฐ๊ณผ  API Json ๋ณด๋‚ด๊ธฐ code๊ฒฐ๊ณผ ์Šคํ”„๋ง์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  HttpServlet์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜๋‹ค.์Šคํ”„๋ง์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ณด๋‹ค ๋” ์‰ฝ๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. โ€ป ์ฐธ์กฐ : https://www.inflearn.com/roadmaps/373

[HTTP]HttpServletResponse ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€ ์ƒ์„ฑHTTP ์‘๋‹ต์ฝ”๋“œ ์ง€์ • (200, 404, 500 ๋“ฑ) ํ—ค๋” ์ƒ์„ฑContent-Body ์ƒ์„ฑํŽธ์˜ ๊ธฐ๋Šฅ ์ œ๊ณต Content-Type, ์ฟ ํ‚ค, Redirect  ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ ๊ธฐ๋ณธ ์ƒ์„ฑ๋œ ํ”„๋กœ์ ํŠธApplication์—  @ServletComponentScan ์„ ๋‹ฌ์•„์ค€๋‹ค.→ ์„œ๋ธ”๋ฆฟ์„ ์ฐพ์•„ ์„œ๋ธ”๋ฆฟ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด์•„์ค€๋‹ค.code์ธํ„ฐ๋„ท ์ฃผ์†Œ์ฐฝ์— ๋“ค์–ด๊ฐ€ ๊ฐœ๋ฐœ์ž๋„๊ตฌ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์ง€์ •ํ•œ status์™€ header๊ฐ€ ํ™•์ธ๋œ๋‹ค. ํŽธ์˜ ๋ฉ”์„œ๋“œcontent-Typeresponse.setHeader("Contenct-Type", "text/plain;charset=utf-8"); ๋ฅผ ์“ฐ๋Š” ๋Œ€์‹  ์•„๋ž˜์ฒ˜๋Ÿผ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.codecookiecode์ธํ„ฐ๋„ท์œผ๋กœ url๋กœ ๋“ค์–ด๊ฐ€๋ฉด ๊ฐœ๋ฐœ์ž๋„๊ตฌ์—์„œ ์„ค์ •ํ•œ ๊ฐ’์ด ๋ณด์ด๋Š”๋ฐ์ƒˆ..

[HTTP]Request-HTTP message body

HTTP message body์— ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๋‹ด์•„์„œ ์š”์ฒญํ•˜๋Š” ๋ฐฉ๋ฒ•.HTTP API(REST API)์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ.๋ฐ์ดํ„ฐ ํ˜•์‹: Json, xml, text.method ํ˜•์‹ : POST, PUT, PATCH.๋ฐ์ดํ„ฐ๋ฅผ InputStream์„ ์‚ฌ์šฉํ•ด ์ง์ ‘ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.text๋ฅผ ํ™œ์šฉํ•œ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š”Json๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด๋ณด์žํ”„ ๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ ๊ธฐ๋ณธ ์ƒ์„ฑ๋œ ํ”„๋กœ์ ํŠธApplication์—  @ServletComponentScan ์„ ๋‹ฌ์•„์ค€๋‹ค.→ ์„œ๋ธ”๋ฆฟ์„ ์ฐพ์•„ ์„œ๋ธ”๋ฆฟ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด์•„์ค€๋‹ค.Json ๊ฐ์ฒด๋กœ ๋งŒ๋“ค ํด๋ž˜์Šค๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ๋‹ค.postman์—์„œ jsonํ˜•์‹์œผ๋กœ ์‹คํ–‰ํ•ด๋ณด์žcode๋”๋ณด๊ธฐpackage hello.servlet.basic.request;import java.io.IOExceptio..

[HTTP]Request-method:post๋ฐฉ์‹

์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ post๋ฐฉ์‹์€ ํšŒ์›๊ฐ€์ž…, ์ƒํ’ˆ ์ฃผ๋ฌธ ๋“ฑ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.(์กฐํšŒ๋‚˜ ํŽ˜์ด์ง•์„ ์ œ์™ธํ•œ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์€ post ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค)์ฟผ๋ฆฌ ์ŠคํŠธ๋ง์ด ๋ณด์ด์ง€ ์•Š๊ธฐ์— ๋ณด์•ˆ์ด ์ค‘์š”ํ•˜๊ฑฐ๋‚˜ ๋˜ get ๋ณด๋‹ค ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  ํŠน์ง•content-type: 'application/x-www-form-urlencoded'HTTP ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์— ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. 'username=heloo & age=20' ๐Ÿ’ก content-type์€ HTTP ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ง€์ •ํ•œ๋‹ค.   html์ถœ๋ ฅ/request-param ์ฃผ์†Œ์˜ ์ฝ”๋“œ๋Š” ์•„๋ž˜ ํฌ์ŠคํŠธ์— ์žˆ์Šต๋‹ˆ๋‹ค.2025.02.27 - [โ˜ Network/๐ŸŒ HTTP] - [HTTP]Request-method:get๋ฐฉ์‹ Po..

[HTTP]Request-method:get๋ฐฉ์‹

๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ๋•Œ ๋ฐฉ์‹ ์ค‘ Get์€ ์กฐํšŒ๋‚˜ ํŽ˜์ด์ง•์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉฐ? ๋’ค์— ์ ํžŒ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์ด ๋ชจ๋‘ ๋ณด์ž…๋‹ˆ๋‹ค.์ฟผ๋ฆฌ์ŠคํŠธ๋ง์—๋Š” ์ „๋‹ฌํ•˜๋Š” paramName1=value & paramName2 = value ์™€ ๊ฐ™์ด ๊ฐ’์ด ๋‹ด๊ฒจ์žˆ์Šต๋‹ˆ๋‹ค.  ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ ๊ธฐ๋ณธ ์ƒ์„ฑ๋œ ํ”„๋กœ์ ํŠธApplication์—  @ServletComponentScan ์„ ๋‹ฌ์•„์ค€๋‹ค.→ ์„œ๋ธ”๋ฆฟ์„ ์ฐพ์•„ ์„œ๋ธ”๋ฆฟ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด์•„์ค€๋‹ค.  code ๋”๋ณด๊ธฐpackage hello.servlet.basic.request;import java.io.IOException;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servle..

[HTTP]HttpServletRequest ์„ค๋ช…๊ณผ ์‚ฌ์šฉ๋ฒ•

โ€ป ์ด์ „ ํŽธ 2025.02.27 - [โ˜ Network/๐ŸŒ HTTP] - [HTTP]HttpServlet ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ํ™˜๊ฒฝ์„ค์ •๋ถ€ํ„ฐ  HttpServletRequest ์„œ๋ธ”๋ฆฟ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ HTTP์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก, ๊ฐœ๋ฐœ์ž ๋Œ€์‹  HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์‹ฑํ•œ๋‹ค.๊ทธ ๊ฒฐ๊ณผ๋ฅผ HttepServletRequest ๊ฐ์ฒด์— ๋‹ด์•„์„œ ์ œ๊ณตํ•œ๋‹ค.๊ตฌ์„ฑSTART LINE- http method, URL,  ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง, ์Šคํ‚ค๋งˆ, ํ”„๋กœํ† ์ฝœํ—ค๋”๋ฐ”๋””- form ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹ ์กฐํšŒ๋ถ€๊ฐ€๊ธฐ๋Šฅ์ž„์‹œ ์ €์žฅ์†Œ์ €์žฅ : request.setAttribute(name, value)์กฐํšŒ : request.getAttribute(name)์„ธ์…˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ request.getSession(Create: true)  ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• cod..

[HTTP]HttpServlet ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ํ™˜๊ฒฝ์„ค์ •๋ถ€ํ„ฐ

โ€ป ์ฐธ๊ณ 2025.02.26 - [โ˜ Network/๐ŸŒ HTTP] - [HTTP]HttpServlet ์—ญํ•    ํ™˜๊ฒฝ์„ค์ • ์Šคํ”„๋ง๋ถ€ํŠธ ๋‹ค์šด๋กœ๋“œgit ์˜ฌ๋ฆฌ๊ธฐlombok ์„ค์น˜extention postman ์„ค์น˜ HttpServlet ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ ๊ธฐ๋ณธ ์ƒ์„ฑ๋œ ํ”„๋กœ์ ํŠธApplication์—  @ServletComponentScan ์„ ๋‹ฌ์•„์ค€๋‹ค.→ ์„œ๋ธ”๋ฆฟ์„ ์ฐพ์•„ ์„œ๋ธ”๋ฆฟ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด์•„์ค€๋‹ค.codeํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด  HttpServlet ์„ ํ™•์žฅํ•œ๋‹ค. @WebServlet  ์• ๋…ธํ…Œ์ด์…˜์„ ๋‹ฌ๊ณ  ์ด๋ฆ„ name ๊ณผ ํŒจํ„ด urlPattern ์„ ๋‹ฌ์•„์ค€๋‹ค. response ๋ฅผ ์ด์šฉํ•ด ๋ณด๋‚ผ ๋•Œ ContentType, Encoding์„ ์ •ํ•ด์ค€๋‹ค.response์˜  getWriter( ) ๋ฅผ ์ด์šฉํ•ด body๋ž€์— ๋ฐ์ดํ„ฐ๋ฅผ ..

[HTTP]HttpServlet ์—ญํ• 

ํ™”๋ฉด์—์„œ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„ TCP/IP ์—ฐ๊ฒฐ, ํŒŒ์‹ฑ, ๋ฉ”์„œ๋“œ ๋ฐฉ์‹, contentType ๋“ฑ์„ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š”๋ฐ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ์„ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๊ฒŒ ๋ฐ”๋กœ ์„œ๋ธ”๋ฆฟ์ด๋‹ค.url/๋งคํ•‘๋ช…์ด ๋ณด๋‚ด๋น„๋ฉด ํ†ฐ์บฃ์ด ์ œ๊ณตํ•˜๋Š” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž๋™์œผ๋กœ ์„œ๋ธ”๋ฆฟ์„ ์ƒ์„ฑํ•œ๋‹ค.HTTP ์ •๋ณด๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ œ๊ณตํ•˜๋Š” HttpServletRequest/Response ๋“ฑ์ด HttpServlet์— ๋“ค์–ด์ž‡๋‹ค.์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ, ์ดˆ๊ธฐํ™”, ํ˜ธ์ถœ, ์ข…๋ฃŒํ•˜๋Š” ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋Š” ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.์ตœ์ดˆ ๋กœ๋”ฉ ์‹œ์ ์— ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘๊ณ  ์žฌํ™œ์šฉํ•œ๋‹ค.๋™์‹œ ์š”์ฒญ์„ ์œ„ํ•œ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค.→ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋™์‹œ ์š”์ฒญ์„ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ์ฒ˜๋ฆฌ๋ฅผ ๋”ฐ๋กœ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.  โ€ป ์ฐธ์กฐ : https://..

๋ฐ˜์‘ํ˜•