Content-Length header

Всё что касается построения API
Ответить
worldof
Сообщения: 9
Зарегистрирован: 2019.02.28, 10:21

Content-Length header

Сообщение worldof » 2019.02.28, 10:36

Здравствуйте!

Подскажите, пожалуйста, ак правильно определить заголовок content-length в REST Controller?

Делал такое извращение, оно работает

Код: Выделить всё

public function actionClientSettings()
    {
        ...

        $response = $model->getClientSettings();

        if(!Yii::$app->response->headers->has('Content-Length')) {
            Yii::$app->response->headers->set('Content-Length', strlen(json_encode($response)));
        }

        return $response;
    }
но результат Content-Length == 16к и страница грузится минуты 2. Как все это правильно решается? Таких экшенов множество..

worldof
Сообщения: 9
Зарегистрирован: 2019.02.28, 10:21

Re: Content-Length header

Сообщение worldof » 2019.03.01, 08:06

Help! :)

worldof
Сообщения: 9
Зарегистрирован: 2019.02.28, 10:21

Re: Content-Length header

Сообщение worldof » 2019.03.01, 09:06

Хорошо, вот заголовки:

Код: Выделить всё

Response headers (434 B)	

Access-Control-Allow-Credentials	
true
Cache-Control	
no-store, no-cache, must-revalidate
Connection	
keep-alive
Content-Length	
11000
Content-Type	
application/json; charset=UTF-8
Date	
Fri, 01 Mar 2019 06:01:46 GMT
Expires	
Thu, 19 Nov 1981 08:52:00 GMT
Pragma	
no-cache
Server	
nginx/1.10.3 (Ubuntu)
X-Debug-Duration	
36
X-Debug-Link	
/debug/default/view?tag=5c78caca2b699
X-Debug-Tag	
5c78caca2b699


Request headers (405 B)	

Accept	
text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding	
gzip, deflate
Accept-Language	
ru,en-US;q=0.7,en;q=0.3
Connection	
keep-alive
Cookie	
advanced-frontend=uvln8np2a56jlaeauk1rddqbq2
Host	
limehd.local
Upgrade-Insecure-Requests	
1
User-Agent	
Mozilla/5.0 (X11; Ubuntu; Linu…) Gecko/20100101 Firefox/58.0
грузится полторы минуты, для этого попробовал так:

Код: Выделить всё

public function afterAction($action, $result)
    {
        $result = parent::afterAction($action, $result);

        if(!Yii::$app->response->headers->has('Content-Length')) {
            Yii::$app->response->headers->set('Content-Length', 11000);
        }

        return $result;
    }
вообще как в для yii/rest/Controller определить такой заголовок?

frid-karatel
Сообщения: 49
Зарегистрирован: 2017.03.06, 15:37
Откуда: Владивосток

Re: Content-Length header

Сообщение frid-karatel » 2019.03.01, 14:01

А причём тут Content-Length и время загрузки страницы?

Ну определил я, допустим, размер содержимого.
А потом поставил sleep(30)...

worldof
Сообщения: 9
Зарегистрирован: 2019.02.28, 10:21

Re: Content-Length header

Сообщение worldof » 2019.03.06, 15:55

frid-karatel писал(а):
2019.03.01, 14:01
А причём тут Content-Length и время загрузки страницы?

Ну определил я, допустим, размер содержимого.
А потом поставил sleep(30)...
Ну это логическое умозаключение, ибо без этого заголовка все грузится в штатном режиме, как поставлю все - минуты 2. Никаких слипов я не ставил.

worldof
Сообщения: 9
Зарегистрирован: 2019.02.28, 10:21

Re: Content-Length header

Сообщение worldof » 2019.03.06, 16:02

frid-karatel писал(а):
2019.03.01, 14:01
Ну определил я, допустим, размер содержимого.
сам еще не определишь, ибо урежет. Когда урежет хоть на 1 ед.длины то все грузится нормально, правда JSON битый будет

Ответить