http ν΄λΌμ΄μΈνΈλ νμ 맀κ°λ³μκ° μλλΌλ κΈ°λ³Έ ν€λ κ° κΈΈμ΄ 8190 μ μ¬μ μνλ κ²μ μ€μ λ‘ μ§μνμ§ μμ΅λλ€.
κ·Έ κ²°κ³Ό λ€μκ³Ό κ°μ μ€λ₯ λ©μμ§κ° λνλ©λλ€.
aiohttp.client_exceptions.ClientResponseError: 400, message='Got more than 8190 bytes when reading Header value is too long.'
μ€μ μ±μ μ€ν μΆμ :
<snip>
File "/usr/local/lib/python3.6/site-packages/pyportify/google.py", line 113, in _http_get
params=merged_params,
File "/usr/local/lib/python3.6/site-packages/aiohttp/helpers.py", line 97, in iter
ret = yield from self._coro
File "/usr/local/lib/python3.6/site-packages/aiohttp/client.py", line 241, in _request
yield from resp.start(conn, read_until_eof)
File "/usr/local/lib/python3.6/site-packages/aiohttp/client_reqrep.py", line 564, in start
message=exc.message, headers=exc.headers) from exc
aiohttp.client_exceptions.ClientResponseError: 400, message='Got more than 8190 bytes when reading Header value is too long.'
session/get μμ²μμ νμλ₯Ό μ€μ νκ±°λ max_field_sizeλ₯Ό μ€μ ν μ μμ΅λλ€.
λλ λͺ»ν΄
λλ μ΄κ²μ΄ κ·Έκ²μ ν κ²μ΄λΌκ³ λ―Ώμ΅λλ€ :
import aiohttp
import asyncio
@asyncio.coroutine
def main():
with aiohttp.ClientSession() as session:
resp = yield from session.get('http://test.xr6.me')
print(len(resp.headers['X-TEST-HEADER']))
resp.close()
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(
asyncio.gather(main())
)
loop.close()
Ubuntu jessie(Windowsμ© bash, λ€λ₯Έ κ²μμλ μ¬ν)
python3.4(λ€λ₯Έ κ²λ€μμλ μ¬μμ°)
λΆννλ νμ¬ ν΄λΌμ΄μΈνΈ λμμΈμλ μμ²λ 맀κ°λ³μλ₯Ό μν μλ¦¬κ° μμ΅λλ€.
#2019κ° λλλ©΄ λ¬Έμ λ‘ λμκ° μ μμ΅λλ€.
μ°λ¦¬μ λͺ©νλ λΈλΌμ°μ λ³΄λ€ κ΄λνμ§ μμ΅λκΉ? λΈλΌμ°μ κ° μ΄λ¬ν κΈ΄ μ€μ λ²λ¦¬λμ§ μ¬λΆλ λͺ¨λ₯΄κ² μ§λ§ νμ€ν μ€λ₯κ° λ°μνμ§λ μμ΅λλ€. μ΄ κ²½μ° 8190μ λΆλͺ ν λ무 μμ΅λλ€. μ΄ μ νμ μ€μ κ°λ₯νκ² λ§λ€μ§ μμΌλ €λ©΄ λ§μ΄ λμ΄λ κ²μ΄ μ’μ ν΄κ²°μ± μ λλ€.
IFAIK λΈλΌμ°μ λ λΈλΌμ°μ κ° κΈ°λνλ κ²λ³΄λ€ λ κΈ΄ κ²μ μ‘°μ©ν λ²λ¦½λλ€.
침묡νλ 무μ§λ λΌμ΄λΈλ¬λ¦¬ IMHOμ λν μ΅μ
μ΄ μλμ§λ§ κ΅¬μ± κ°λ₯ν κ²μ΄μ΄μΌ ν©λλ€.
μ€λ μ λ
μ λ§μ΄ν¬λ‘ μλΉμ€ μ€ νλλ‘ MS Teams λ΄ νλ μμν¬(aiohttp)λ₯Ό λ°°ν¬νμ΅λλ€.
OpenID/Oauth2λ₯Ό μ¬μ©νλ©΄ x-userinfo ν€λμ μ¬μ©μ μμ±μ΄ 8Kb μ νμ κΉ¨λ¨λ¦½λλ€.
μ°λ¦¬λ μ΄λ¬ν μλͺ λ ν€λμ μλΉν μμ‘΄νκ³ μμ΅λλ€. μ΄λ¬ν ν€λλ λ³μ‘°λμ§ μμ νμ΄λ‘λλ₯Ό μ λ’°νκ³ μ¬μ©μ, λ²μ λ° μμ±μ μλ³νλ λ¨μΌ μ 보 μμ€μ΄κΈ° λλ¬Έμ λλ€.
μ΄ λ³κ²½ μ¬νμ λν μ§μμ΄ μλ€λ©΄ μ°λ¦¬ μ§μ μ€ ν λͺ μ΄ PRμ λμ ν μ μμ΅λκΉ?
μ°λ¦¬μ κ²½νμ λ°λ₯΄λ©΄ μ΄λ¬ν κ°μ κ΅¬μ± κ°λ₯ν κ²½ν₯μ΄ μλ€κ³ λ§ν μ μμ΅λλ€.
Bowsers : Chrome/iumμ 250KBμ ν€λλ₯Ό μ§μνλ©° κΈ°ν μ£Όλ₯λ λμΌνκ±°λ κ·Έ μ΄μμ
λλ€.
κ΅¬μ± μ΅μ
μ ν΅ν΄ μ΄ μ νμμ HTTP λ°λͺ¬ μ΄ μ μ°ν©λλ€.
λλ κ³μν΄μ PRμ ν κ²μ λλ€. μ μ λΉμ·ν κ²λ€μ΄ λ°μλ€μ¬μ§λ κ²μ λ³Έ μ μ΄ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
μ€λ μ λ μ λ§μ΄ν¬λ‘ μλΉμ€ μ€ νλλ‘ MS Teams λ΄ νλ μμν¬(aiohttp)λ₯Ό λ°°ν¬νμ΅λλ€.
OpenID/Oauth2λ₯Ό μ¬μ©νλ©΄ x-userinfo ν€λμ μ¬μ©μ μμ±μ΄ 8Kb μ νμ κΉ¨λ¨λ¦½λλ€.
μ°λ¦¬λ μ΄λ¬ν μλͺ λ ν€λμ μλΉν μμ‘΄νκ³ μμ΅λλ€. μ΄λ¬ν ν€λλ λ³μ‘°λμ§ μμ νμ΄λ‘λλ₯Ό μ λ’°νκ³ μ¬μ©μ, λ²μ λ° μμ±μ μλ³νλ λ¨μΌ μ 보 μμ€μ΄κΈ° λλ¬Έμ λλ€.
μ΄ λ³κ²½ μ¬νμ λν μ§μμ΄ μλ€λ©΄ μ°λ¦¬ μ§μ μ€ ν λͺ μ΄ PRμ λμ ν μ μμ΅λκΉ?
μ°λ¦¬μ κ²½νμ λ°λ₯΄λ©΄ μ΄λ¬ν κ°μ κ΅¬μ± κ°λ₯ν κ²½ν₯μ΄ μλ€κ³ λ§ν μ μμ΅λλ€.
Bowsers : Chrome/iumμ 250KBμ ν€λλ₯Ό μ§μνλ©° κΈ°ν μ£Όλ₯λ λμΌνκ±°λ κ·Έ μ΄μμ λλ€.
κ΅¬μ± μ΅μ μ ν΅ν΄ μ΄ μ νμμ HTTP λ°λͺ¬ μ΄ μ μ°ν©λλ€.