Mvc: ์งˆ๋ฌธ: HttpContext.Features ๋Œ€ HttpContext.Items

์— ๋งŒ๋“  2018๋…„ 05์›” 29์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: aspnet/Mvc

HttpContext.Features ๋ฐ HttpContext.Items ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ HttpContext ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค์™€ ๊ณต์œ ํ•  ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๊ฒƒ๋ณด๋‹ค ์„ ํ˜ธํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ˆœ์ „ํžˆ ๋‚˜์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๊นŒ? ํŠน์ • ์ƒํ™ฉ์—์„œ ๊ทธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๊ธฐ๋Šฅ์€ ๊ตฌํ˜„๊ณผ ์†Œ๋น„์ž ๊ฐ„์˜ ๋ช…์‹œ์ ์ธ ๊ณ„์•ฝ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ๋” ๋งŽ์€ ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  ๋˜ํ•œ ์ƒํƒœ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ–‰๋™์„ ๋“œ๋Ÿฌ๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ญ๋ชฉ์€ ์‹ค์ œ๋กœ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ํ•ญ๋ชฉ์€ http ์ปจํ…์ŠคํŠธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ํ•ญ๋ชฉ ๊ฐ„์— ์ƒํƒœ๋ฅผ ์™•๋ณตํ•˜๋„๋ก ๋งŒ๋“ค์–ด์ง„ ์ผ๋ฐ˜ ์‚ฌ์ „์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @ayepirate์ž…๋‹ˆ๋‹ค.

HttpContext์˜ Features ์†์„ฑ์€ ํ˜„์žฌ ์š”์ฒญ์— ๋Œ€ํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ HTTP ๊ธฐ๋Šฅ์„ ๊ฐ€์ ธ์˜ค๊ณ  ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ์ปฌ๋ ‰์…˜์€ ์š”์ฒญ ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ๋„ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋ ‰์…˜์„ ์ˆ˜์ •ํ•˜๊ณ  ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Features ์ปฌ๋ ‰์…˜์—๋Š” ๊ธฐ๋Šฅ๋งŒ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถœ์ฒ˜: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/request-features?view=aspnetcore-2.0

์š”์ฒญ ๋ฒ”์œ„ ๋‚ด์—์„œ ์ฝ”๋“œ์˜ ์—ฌ๋Ÿฌ ์ธก๋ฉด ๊ฐ„์— ์ž„์˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋ ค๋ฉด Items ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. https://docs.microsoft.com/en-us/aspnet/core/fundamentals/request- ๊ธฐ๋Šฅ?๋ณด๊ธฐ=aspnetcore-2.0

@mkArtakMSFT ํ•˜์ง€๋งŒ ๋‚ด ์ž์‹ ์˜ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ณ  ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

์„œ๋ฒ„๊ฐ€ ๊ธฐ๋Šฅ ์ปฌ๋ ‰์…˜ ์ƒ์„ฑ์„ ๋‹ด๋‹นํ•˜๋Š” ๋™์•ˆ ๋ฏธ๋“ค์›จ์–ด๋Š” ์ด ์ปฌ๋ ‰์…˜์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ปฌ๋ ‰์…˜์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด StaticFileMiddleware๋Š” IHttpSendFileFeature ๊ธฐ๋Šฅ์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉด ์‹ค์ œ ๊ฒฝ๋กœ์—์„œ ์š”์ฒญ๋œ ์ •์  ํŒŒ์ผ์„ ๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋” ๋Š๋ฆฐ ๋Œ€์ฒด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ IHttpSendFileFeature๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์šด์˜ ์ฒด์ œ์—์„œ ํŒŒ์ผ์„ ์—ด๊ณ  ๋„คํŠธ์›Œํฌ ์นด๋“œ์— ๋Œ€ํ•œ ์ง์ ‘ ์ปค๋„ ๋ชจ๋“œ ๋ณต์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ์€ ๊ตฌํ˜„๊ณผ ์†Œ๋น„์ž ๊ฐ„์˜ ๋ช…์‹œ์ ์ธ ๊ณ„์•ฝ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ๋” ๋งŽ์€ ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  ๋˜ํ•œ ์ƒํƒœ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ–‰๋™์„ ๋“œ๋Ÿฌ๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ญ๋ชฉ์€ ์‹ค์ œ๋กœ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ํ•ญ๋ชฉ์€ http ์ปจํ…์ŠคํŠธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ํ•ญ๋ชฉ ๊ฐ„์— ์ƒํƒœ๋ฅผ ์™•๋ณตํ•˜๋„๋ก ๋งŒ๋“ค์–ด์ง„ ์ผ๋ฐ˜ ์‚ฌ์ „์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰