애플은 safari response 204 오류를 고칠 생각이 없나보네요.
머리 식힐 겸 남기는 잡담입니다.
최근에 개인적으로 사용할 노래방 어플을 만들었습니다. 정확히 말하면 웹앱이 되겠네요. 처음엔 어플로 만들려다가 제가 안드로이드 기기 밖에 없어서 애플 유저를 위해 웹페이지 형태로 만들었습니다.
앱 기능은 좀 많습니다. 유튜브 영상 재생, 유튜브 영상 다운로드, 영상에서 오디오와 비디오 분리, 오디오 조바꿈, 오디오에서 보컬 제거, IOT 기기 제어 (홈어시스턴트 + HASS-CLI) 등의 기능이 있습니다. 외부 모듈은 ffmpeg, rubberband, vocal remover 등을 사용합니다. 재생 및 DB관리는 KODI를 사용합니다.
웹은 파이썬+플라스크로 만들었는데 안드로이드와 윈도우의 대부분 브라우저에서 모든 기능이 정상 작동합니다. 그런데 애플 기기에서 테스트해보고 식겁했습니다. HTML response 204(no content) 에서 페이지 이동없이 form 전송만 실행되어야 하는데(페이지 리프레시 아님) 사파리에서는 제대로 작동을 하지 않네요. form 전송은 성공해서 기능은 작동하는데 빈페이지로 강제 이동 시켜버립니다.
https://developer.apple.com/forums/thread/70226
Http 204 loads blank page on all i… | Apple Developer Forums
I built a web app that allows a user to upload files to an Amazon s3 bucket via a webform, I unfortualy am in a sandboxed evnoronment and cannout make a JS httprequest to s3. Anyway, Amazon send a 204 response back if the PUT was a success, unless you spec
developer.apple.com
구글에서 정보를 뒤져보니 https://stackoverflow.com에 이 오류가 처음 알려진게 2013년, 애플 개발자 포럼에 올라온 글도 6년이 넘었습니다. 웹표준을 지키지 않는 버그가 10년 넘게 안고치는 걸 보면 그냥 고칠 생각이 없는 것 같습니다. 일반적인 웹사이트에서는 response 204를 쓸 일이 별로 없고, 웹앱에서나 주로 사용하기 때문에 일부러 안고치는 것 같기도 합니다. 일부러 그랬든 아니든 애플답게 고집이 센 것 같습니다.
이걸 해결하려면 javascript를 추가해서 소스를 수정해야 하는데 제 어플 사용자 중에 애플 유저가 얼마 없어서 그냥 수정하지 않기로 했습니다. 개발 초보라 실력도 없는데 애플 기기도 없어서 테스트도 못합니다.
제가 맥을 마지막으로 썼던 게 스노우레오파드 즈음 이었던 것 같은데 제가 원하는 어플도 거의 없고, OS 업데이트 할 때마다 호환성 따지는게 귀찮아서 윈도우로 완전 옮겼습니다. 그 때도 커스터마이징을 하거나 다른 기기의 rom, 펌웨어 등을 수정할 때 윈도우를 쓸 수 밖에 없어서 맥이랑 안맞았습니다.
저한테 컴퓨터는 어차피 도구에 불과하고, 제가 원하는 걸 할 수 없으면 사용할 이유가 없기 때문에 그때도 애플이랑은 참 안맞았던 것 같습니다. 직접 어플을 만들어보니 왜 제가 원하는 어플들이 없었는지 조금은 알 것 같네요.
#버그 #애플 #사파리 #response 204