πŸ‘¨πŸ»‍πŸ’» programming/β—½ 이것저것..

[HTTP] Error 416 "The requested range is not satisfiable"

DoctorSunAhna 2024. 2. 7. 18:46
728x90

HTTP Error 416 

"The requested range is not satisfiable"  ????????????????????

λ²”μœ„λ₯Ό 잘λͺ» μž…λ ₯ν–ˆκ±°λ‚˜ 끝 λ²”μœ„λ₯Ό μž…λ ₯ν•œ 경우. 

 

πŸ”Έ λ°œμƒν•˜κ²Œ 된 상황:

μž‘μ—…μ„ ν•˜λ˜ 쀑... νŒŒμΌμ„ λ°›λ‹€κ°€ 쀑간에 λ©ˆμ·„μ„ 경우(κ°•μ’… λ“±λ“± μ˜ˆμƒν•˜μ§€ λͺ»ν•œ μ’…λ£Œ) λ‹€μŒμ— λ‹€μ‹œ νŒŒμΌμ„ 이어받고 μ‹Άμ–΄μ„œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ‹€. λ°œμƒν•œ μ—λŸ¬μ˜€λ‹€. 

HTTP에 νŠΉμ • λ²”μœ„(byte)λΆ€ν„° νŒŒμΌμ„ λ°›κ² λ‹€κ³  μš”μ²­μ„ λ³΄λƒˆμ—ˆλ‹€.
HTTP에 연결은 λ˜μ§€λ§Œ 전달 받은  λ‚΄μš©μ—λŠ” μœ„μ™€ 같은 ν…μŠ€νŠΈκ°€ ν¬ν•¨λœ bufferλ₯Ό λ°›μ•˜λ‹€.
μš”μ²­λ¬Έλ²•μ΄ 잘λͺ»λ˜λ©΄ "Error 400 : Bad Request - Invalid Header" 을 뱉어낸닀. 즉 λ¬Έλ²•μ—λŠ” λ¬Έμ œκ°€ μ—†μ—ˆλ‹€.
("HTTP λ²”μœ„ μš”μ²­" ν‚€μ›Œλ“œλ‘œ ꡬ글링 ν•˜λ©΄ 문법 λ‚˜μ˜΄.)

참고둜 μ‚¬μš©ν–ˆλ˜ 문법 ν˜•νƒœλŠ” μ•„λž˜μ™€ κ°™μ•˜λŠ”λ° dataLengthκ°€ μ„œλ²„μ— λ§ν¬ν•˜μ—¬ 받을 λ°μ΄ν„°μ˜ 총합 크기와 동일할 λ•Œ Error  416을 λ±‰μ–΄λƒˆλ‹€. 

"Range:bytes=%d-" , dataLength

 

πŸ”Ή λ¬Έμ œν•΄κ²° 방법: 

μœ„ λ¬Έμ œλŠ” 예λ₯Ό λ“€μ–΄ 파일의 끝이 512인데 ν˜„μž¬κΉŒμ§€ 받은 λ°μ΄ν„°μ˜ μ–‘(dataLength)의 길이가 512 μΌλ•Œ λ°œμƒν–ˆλ˜ λ¬Έμ œμ΄μ˜€λ‹€. μ΄λŠ” 끝 μœ„μΉ˜μ˜ 파일 크기가 1을 λΊ€ 것보닀 ν΄μˆ˜κ°€ μ—†κΈ° λ•Œλ¬Έμ— λ‚˜νƒ€λ‚œ ν˜„μƒμ΄μ˜€λ‹€. 

λ§Œμ•½ νŒŒμΌμ„ λ‹€ λ°›μ•˜μœΌλ‹ˆ totalsize == dataLengthμΌλ•Œ μ˜ˆμ™Έμ²˜λ¦¬λ₯Ό ν•΄μ£Όκ±°λ‚˜ dataLength-1μ„ν•˜μ—¬ μ„œλ²„μ— μ—°κ²°ν•˜μ—¬ 1byteλ₯Ό ν•œ λ²ˆλ” λ°›λŠ” μ‹μœΌλ‘œ μ½”λ“œλ₯Ό μˆ˜μ •ν•˜λ©΄ λœλ‹€. 

1. "Range:bytes=%d-" , dataLength-1 

2. "Range:bytes=%d-%d" , dataLength-1, totalLength

3. if(dataLength == totalLength)
	{ /* ... μ˜ˆμ™Έμ²˜λ¦¬ ... */  };

 

728x90