Updated:

Tags:

Categories:

chunked ์ธ์ฝ”๋”ฉ๊ณผ์˜ ๋งŒ๋‚จ

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ์ž‘์—… ์ค‘์— GET ์š”์ฒญ์œผ๋กœ robots.txt ๋ฅผ ์ฝ์–ด์˜ค๊ฒŒ ํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ, UTF-8๋กœ ์ธ์ฝ”๋”ฉ๋œ ๋…€์„๋“ค์€ ํ…์ŠคํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ (์˜ˆ์‹œ)User-agent ์ด๋ผ๊ณ  ํ‘œ์‹œ๋˜์—ˆ์ง€๋งŒ ์–ด๋–ค ๋…€์„์€ \x00U\x00s\x00e\x00r\x00-\x00a\x00g\x00e\x00n\x00t ์ด๋ ‡๊ฒŒ ์•Œ ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๋กœ ํ‘œ์‹œ๋์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ํ”ํžˆ ์•Œ๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์˜ ์ธ์ฝ”๋”ฉ(UTF-16 ์ด๋ผ๋˜์ง€..)์ธ๊ฐ€ ์‹ถ์–ด์„œ ์ธ์ฝ”๋”ฉ ๋ณ€ํ™˜ ์‚ฌ์ดํŠธ์— ๋Œ์•„๋‹ค๋‹ˆ๋ฉด์„œ ๋””์ฝ”๋”ฉ์„ ์‹œ๋„ํ•ด ๋ดค๋Š”๋ฐ ์‹คํŒจํ–ˆ์—ˆ๋‹ค. ๋„๋Œ€์ฒด ์ด ๋…€์„์˜ ์กด์žฌ๋Š” ๋ฌด์—‡์ธ๊ฐ€ ์‹ถ์–ด์„œ GET ์š”์ฒญ์˜ ์‘๋‹ต์œผ๋กœ ์˜จ ๋ฐ์ดํ„ฐ์˜ header๋ฅผ ์‚ดํŽด๋ณด๋‹ˆ ์ฐจ์ด์ ์ด ์žˆ์—ˆ๋‹ค.

์ •์ƒ์ ์œผ๋กœ ํ‘œ์‹œ๋˜๋Š” ๋…€์„์˜ header ์•ˆ์—๋Š”

'content-type': 'text/plain; charset=utf-8',
'content-length': '201',

์ด๋ ‡๊ฒŒ UTF-8๋กœ ์ธ์ฝ”๋”ฉ ๋˜์—ˆ์Œ์ด ํ‘œ์‹œ๋˜์–ด์žˆ์ง€๋งŒ,

๋ฌธ์ œ์˜ ๋…€์„์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

'content-type': 'text/plain',
'transfer-encoding': 'chunked',

๋„๋Œ€์ฒด chunked๋Š” ๋ฌด์—‡์ธ๊ฐ€?

Transfer-Encoding: chunked ๋ž€?

https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Transfer-Encoding
https://en.wikipedia.org/wiki/Chunked_transfer_encoding

์ดํ•ดํ•˜๋Š”๋ฐ์— ๋„์›€๋˜๋Š” ์‰ฌ์šด ๊ธ€
https://withbundo.blogspot.com/2017/08/http-20-http-ii-transfer-encoding.html
https://goyunji.tistory.com/8

๊ทธ ์™ธ
https://feel5ny.github.io/2020/01/05/HTTP_015_01/
https://eminentstar.tistory.com/48
https://b.pungjoo.com/entry/Transfer-Encoding-chunked-VS-Content-Length

๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋ฐ”๋กœ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฉ์–ด๋ฆฌ(Chunk)๋กœ ๋‚˜๋ˆ„์–ด์„œ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ๊ฐ€์‚ฌ์˜ ๋‚ด์šฉ์„ ์ „๋‹ฌํ•œ๋‹ค๊ณ  ํ•˜๋ฉด, (๋น›๊ณผ ์†Œ๊ธˆ - ๋‚ด ๊ณ์—์„œ ๋– ๋‚˜๊ฐ€์ง€ ๋ง์•„์š”)

'์ œ๋ฐœ ๋‚ด ๊ณ์—์„œ ๋– ๋‚˜๊ฐ€'

'์ง€ ๋ง์•„์š” 
๊ทธ๋Œ€ ์—†๋Š” ๋ฐค์€ ๋„ˆ๋ฌด ์‹ซ'

'์–ด 
๋Œ์ดํ‚ฌ ์ˆ˜ ์—†'

'๋Š” ๊ทธ๋Œ€ ๋งˆ์Œ 
์ด์ œ ์™€์„œ ๋‹ค'

'์‹œ ์–ด์ฉŒ๋ ค๋‚˜ 
์Šฌํ”ˆ ๋งˆ์Œ๋„ ์ด์   ์†Œ์šฉ์—†๋„ค'

์ด๋ ‡๊ฒŒ ๋‚˜๋ˆ„์–ด์„œ ์ „์†กํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

์–ด์ด์—†๋Š” ๋‚˜๋ฆ„์˜ ํ•ด๊ฒฐ์ฑ…โ€ฆ

๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์ œ๋Š” ์ €๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ๋””์ฝ”๋”ฉ ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋ƒ” ๋ง์ด๋‹ค! ์•„๋ฌด๋ฆฌ ์ฐพ์•„๋ด๋„ ๋””์ฝ”๋”ฉ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ https://www.reddit.com/r/Python/comments/28fr54/what_type_of_string_encoding_is/ ์—์„œ ๋ณด๋‹ค๊ฐ€ ๊ฐ‘์ž๊ธฐ ๊นจ๋‹ฌ์€ ์‚ฌ์‹ค..

์œ„์—์„œ ๋ˆˆ์น˜์ฑˆ ์‚ฌ๋žŒ์ด ์žˆ์—ˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด์ง€๋งŒ User-agent ๋ถ€๋ถ„์—์„œ \x00U\x00s\x00e\x00r\x00-\x00a\x00g\x00e\x00n\x00t ์ด๋ ‡๊ฒŒ ๋ณ€ํ™˜๋˜์–ด ๋‚˜์˜จ๋‹ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐโ€ฆ ์ž์„ธํžˆ ๋ณด๋ฉด \x00 ๋ถ€๋ถ„๋งŒ ๋ชจ๋‘ ์ œ๊ฑฐํ•ด ๋ณด๋ฉด User-agent ๊ฐ€ ๋œ๋‹ค.. ๊ทธ๋ƒฅ \x00 ๋งŒ ๋ชจ๋‘ ์‚ญ์ œํ•ด์ฃผ๋ฉด ๋˜๋Š” ๊ฑฐ์˜€๋‹ค.

-> ์•„๋‹ˆ์˜€๋‹คโ€ฆ ์ด๊ฒŒ ๋˜ GraphQL๋กœ ๋ฆฌํ„ด๋ฐ›๋Š” ๊ฐ’์„ ๋ณด๋‹ˆ ์ด๋ฒˆ์—๋Š” \x00 ๊ฐ€ ๋ถ™์–ด์žˆ๋˜๊ฒŒ \u0000์œผ๋กœ ์ฃ„๋‹ค ๋ถ™์–ด์„œ ํ‘œ์‹œ๋˜์—ˆ๋‹ค. UTF-16 ๊ฐ™์•„ ๋ณด์ด๊ธฐ๋Š” ํ•œ๋ฐ.. ์ „๋ถ€ \u0000 ๊ฐ€ ๋ถ™์–ด์„œ ๋‚˜์˜ค๋‹ˆ ๋˜ ๋ญ” ์ƒํ™ฉ์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๊ทธ๋ž˜๋„ ์ผ๋‹จ javascript๋กœ .replace(/\u0000/g, '') ์„ ์จ์„œ ๋ชจ๋“  \u0000 ๋ฅผ ์‚ญ์ œํ•ด์ฃผ๋‹ˆ ๊ฐ’์ด ์ •์‚ญ์ ์œผ๋กœ ๋‚˜์™”๋‹ค.

Leave a comment