Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
Установили cache2010, до этого стояла cache 5.0.21 в cache2010 не могу добиться вывода произвольного http кода в ответе csp-сервиса все нестандартные коды cache заменяет на 500 Internal Server Error под отладчиком посмотреть не получается, после выхода из OnPreHTTP отладчик ругается на отсутствие %SYS.cspServer.INT Decos, который работал на cache 5 тоже что то его не берет, валится на <UNDEFINED>startchar+6^%Decos ^Decos("%SYS.cspServer","Vars",-32) кто нибудь видел может где в каше справочник http кодов ответов? вот пример класса который должен выводить http код 450 если меняю например на 404 или 420 - каше проглатывает. а 450 уже меняет на 500 Class Report.Test Extends %CSP.Page { ClassMethod OnPreHTTP() As %Boolean { s %response.Status="450 test error" q 1 } ClassMethod OnPage() As %Status { w "test",! Quit $$$OK } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 10:31 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
%SYS.cspServer.int конечно же не будет, он закрыт пытались сделать декомпиляцию, а зачем ?, и кто нибудь ее допилил до 2010 версии, думаю вряд ли. про ошибку 500 полагаю это просто защита, чтобы браузеру не ушел код который он не будет знать как обработать думаю не стоит использовать нестандартные коды ошибок HTTP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 10:51 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
DAiMor, нигде кроме cache такого ограничения на коды нет и дело в том что уже корпоративная система рассчитана на такие коды не хочется переписывать только из-за одной cache, хочется допилить или обойти как нибудь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 11:08 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
slavb18, в общем проблема не в Cache, он все отдает как говорят, судя по всему меняет код встроенный Apache когда я делаю запросы через IIS то код статуса совпадает данная проблема говорит о том что не желательно отходить от стандарта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 12:54 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
DAiMorslavb18, в общем проблема не в Cache, он все отдает как говорят, судя по всему меняет код встроенный Apache когда я делаю запросы через IIS то код статуса совпадает данная проблема говорит о том что не желательно отходить от стандарта либо что скорее всего из-за различий версий встроенного apache в 2008 был apache 2.0 в 2010 уже apache 2.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 12:58 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
DAiMor, апач сторонний, и один и тот же, что для cache 5, что и для cache2010 различие только в том что cache2010 работает через модуль CSPa22.so (без cspnsd) попробую тогда туда покопать. PS. различие в кодах делали специально, чтобы не путать кто сказал 403 например - апач или приложение, сделали в приложении все коды +50, 403->453. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 14:05 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
slavb18 , Попробуйте включить расширенное журналирование на уровне CSP-Шлюза и/или Apache и посмотрите, что Вам вернётся. У меня (Cache for Windows (x86-64) 2012.2 (Build 528_1U)) в обоих журналах возвращается правильный статус. Сделал следующее: код на ZENClass my.test1 Extends %ZEN.Component.page { XData Contents [ XMLNamespace = " http://www.intersystems.com/zen" ] { <page xmlns=" http://www.intersystems.com/zen" title=""> <html> test </html> </page> } /// Zen page notification of an HTTP request. This method can be overwritten /// by subclasses.<br/> /// This is called <em>before</em> the standard Zen pre-HTTP processing occurs. ClassMethod %OnPreHTTP() As %Boolean [ ServerOnly = 1 ] { s %response.Status="450 test error" q 1 } } в файле %CacheHome%\httpd\conf\httpd.conf раскомментировал строку Код: plaintext включил в CSP-Шлюзе уровень журналирования "EV3" Результаты: CSP.log Код: xml 1. 2. 3. 4. 5. 6. access.log Код: vbnet 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2012, 13:56 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
servit, посмотрел, в логах апача и csp - код 455, но клиенту приходит 500 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. при том 500 приходит только в режиме работы через CSPa22.so в режиме cgi (nph-CSPcgi) отдается код 455 уже попробовал (безрезультатно) прописывать Non_Parsed_Headers=Enabled и Non_Parsed_Headers=Disabled ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 12:06 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
Все это замечательно конечно, все с выше сказанным понятно. А вот может быть кто нибудь просветит мою темноту по вопросу наличия в классе %CSP.Page средств к прекращению какого либо ответа сервера браузеру ? Т.е. есть ли методы на стороне сервера которые бы полностью блокировали ответ сервера браузеру после того же onPage ..... Чтобы на стороне клиента браузер бы даже ухом не повел после завершения работы класса наследованного от %CSP.Page ? Спасибо! Ps/ вы уж простите за мою темноту но уж очень знать охото ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2012, 13:33 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
alex171069, всмысле, не совсем понятно, сервер что то все равно должен ответить либо разорвать соединение ответить с кодом можно в OnPreHTTP, в %response.Status, код ответа если хотите ответить отличный от 200 ОК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2012, 13:37 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
alex171069 , Посмотрите %CSP.Response.Abort() (и UseASPredirect там же). Проще в OnPreHTTP() вернуть 0 , тем самым предотвратив вызов OnPage() Не вижу смысла странице позволить начать делать какую-то работу, например генерировать большой долгий отчёт, чтобы потом в итоге ничего не вернуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2012, 14:35 |
|
||
|
http код ответа в cache2010
|
|||
|---|---|---|---|
|
#18+
По идее для предотвращения отправки данных надо задать параметр OutputBody в обработчике OnHTTPHeader как написано в HELP-e но при этом в браузер выводится сообщение, что сервер не предоставил никаких данных, к тому же приводит и quit 0 в OnPreHTTP() Что касается длинного и долгого отчета то конечно же вы правы в том, что это бессмысленно отказываться от ответа сервера. Но это если это отчет, а не что либо другое не требующее ответа сервера... Спасибо всем кто обратил внимание на мой вопрос! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 10:37 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=37702486&tid=1557417]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 403ms |

| 0 / 0 |
