[curl & HTTP 사양] Flask with uWSGI를 HTTP로 이동하면 파일 게시 시 깨끗하게 1초 지연됩니다.
타이틀 대로입니다만, Flask 를 uWSGI @ HTTP 로 움직이면(자), 파일 투고시에 깨끗이 1 초 지연하는 현상을 확인했으므로, 재현 순서를 소개합니다.
이것은
curl 의 사양으로 Expect: 100-continue 헤더를 붙여 리퀘스트를 발행하게 되어 있어, 서버에 파일을 투고해도 괜찮은지 묻는다 1 초 기다리는 것 같습니다. 1$ curl -v -s -XPOST -F file=@LICENSE localhost:5002
* Rebuilt URL to: localhost:5002/
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 5002 (#0)
> POST / HTTP/1.1
> Host: localhost:5002
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Length: 1271
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=------------------------ebc5516179fb0a6c
>
* Done waiting for 100-continue
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Content-Length: 20
<
* Connection #0 to host localhost left intact
Took: 0:00:01.011157
이것은 HTTP/1.1에 준거한 것입니다. 2
uWSGI 는
Expect: 100-continue 의 핸들링에 대응하고 있어 ini 파일에 이하의 행을 추가하면 좋다고 합니다. 1http-manage-expect = 1
실험 설정
상기 리포지토리와 같이,
에 관해서 실험을 실시하고 있습니다.
1. Flask를 단독으로 시작한 경우
단순히
$ flask run --host=0.0.0.0
에서 시작한 경우입니다.
2. Flask가 HTTP 설정 uWSGI를 통해 시작된 경우
uWSGI
http = 0.0.0.0:80
를 포함한 설정으로 시작한 경우입니다.
3. Flask가 uwsgi 프로토콜 설정의 uWSGI를 통해 시작된 경우
uWSGI
socket = /socket/uwsgi.sock
를 포함한 설정으로 시작한 경우입니다.
버전
Flask==1.1.1
uwsgi==2.0.18
실험 결과
각각 curl 를 사용하여 파일을 POST할 때 응답 시간은 다음과 같습니다.
여기서 확인된 한 파일은 무엇이든 좋기 때문에 리포지토리의 LICENSE 파일을 사용하고 있습니다.
응답 시간
1. Flask 단독
0.067
2. Flask w/uWSGI@HTTP
1.063
3. Flask w/uWSGI@uwsgi
0.062
Flask가 uWSGI @ HTTP로 시작된 경우에만 응답 시간이 1초 늦어진 것을 알 수 있습니다.
이번은 시행 횟수 한 번의 데이터를 게재하고 있습니다만, 몇 번 해도 대체로 이 리스폰스 타임이 됩니다.
※ 서두에서 설명한 대로, 여기서 1초 기다리고 있는 주체는 curl 이며, Flask 이나 uWSGI 가 아닙니다.
 결론
Flask 혼자라면 이 현상은 발생하지 않기 때문에 아마 uWSGI가 원인이 아닌가 하는 것으로 적당히 issue 의지도 모르고 잘 모르겠습니다.
자세한 쪽이 계시시면 꼭 교시해 주세요. 
uWSGI의 기여자에게 가르쳤습니다. 1
매우 공부가 되었습니다.
 htps : // 기주 b. 코 m / 똥 t / uws 기 / 이스에 s / 2129 # 이스에 코멘 t-592935917  ↩
 
 htps // gms. tf/우-쿠 rl-센 ds-100-안녕하세요. HTML  ↩
 
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여([curl & HTTP 사양] Flask with uWSGI를 HTTP로 이동하면 파일 게시 시 깨끗하게 1초 지연됩니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/akeyhero/items/9e3d6cde8334dd696942
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
Flask 혼자라면 이 현상은 발생하지 않기 때문에 아마 uWSGI가 원인이 아닌가 하는 것으로 적당히 issue 의지도 모르고 잘 모르겠습니다.
자세한 쪽이 계시시면 꼭 교시해 주세요.

uWSGI의 기여자에게 가르쳤습니다. 1
매우 공부가 되었습니다.
htps : // 기주 b. 코 m / 똥 t / uws 기 / 이스에 s / 2129 # 이스에 코멘 t-592935917 ↩
htps // gms. tf/우-쿠 rl-센 ds-100-안녕하세요. HTML ↩
Reference
이 문제에 관하여([curl & HTTP 사양] Flask with uWSGI를 HTTP로 이동하면 파일 게시 시 깨끗하게 1초 지연됩니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akeyhero/items/9e3d6cde8334dd696942텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)