this
является ссылкой на текущий объект. Он используется в конструкторе для различения локальной и текущей переменных класса, имеющих одно и то же имя. например ::
public class circle {
int x;
circle(int x){
this.x =x;
//class variable =local variable
}
}
this
также может использоваться для вызова одного конструктора из другого конструктора. например:
public class circle {
int x;
circle() {
this(1);
}
circle(int x) {
this.x = x;
}
}
Соответствие RFC 2616 в разделе 9.5 (POST) позволяет кэширование ответ к сообщению POST при использовании соответствующих заголовков.
Ответы на этот метод не являются кэшируемыми, если ответ не включает соответствующее Управление Кэша или Истекает поля заголовка. Однако 303 (См. Другой) ответ могут использоваться для направления агента пользователя для получения кэшируемого ресурса.
Примечание, которое тот же RFC указывает явно в разделе 13 (Кэширующийся в HTTP), что кэш должен делать недействительным соответствующий объект после запроса POST .
Некоторые методы HTTP ДОЛЖНЫ заставить кэш делать недействительным объект. Это - или объект, упомянутый URI запроса, или заголовками Местоположения или Довольного Местоположения (если есть). Эти методы:
- PUT - DELETE - POST
мне не ясно, как эти спецификации могут позволить значимое кэширование.
Если это - что-то, что на самом деле не изменяет данные по Вашему сайту, это должен быть ПОЛУЧИТЬ запрос. Даже если это - форма, можно все еще установить его как получить запрос. В то время как, как другие указывают, Вы могли кэшировать результаты POST, он не будет иметь семантического смысла, потому что POST по определению изменяет данные.
В целом:
В основном POST не является идемпотентной операцией . Таким образом, Вы не можете использовать его для кэширования. ДОБЕРИТЕСЬ должна быть идемпотентная операция, таким образом, это является наиболее часто используемым для кэширования.
посмотрите раздел 9.1 из , RFC 2616 S. 9.1 .
HTTP 1.1 Кроме ПОЛУЧАЕТ семантику метода:
сам метод THE POST семантически предназначен для регистрации чего-то на ресурс. POST не может кэшироваться, потому что, если Вы делаете что-то однажды по сравнению с дважды по сравнению с тремя разами, тогда Вы изменяете ресурс сервера каждый раз. Каждый запрос вопросы и должен быть поставлен серверу.
сам ПОМЕЩЕННЫЙ метод семантически предназначен, чтобы поместить или создать ресурс. Это - идемпотентная операция, но это не будет использоваться для кэширования, потому что УДАЛЕНИЕ, возможно, произошло тем временем.
сам УДАЛИТЬ метод семантически предназначен для удаления ресурса. Это - идемпотентная операция, но это не будет использоваться для кэширования, потому что ПОМЕЩЕННЫЙ, возможно, произошел тем временем.
Относительно клиентского кэширования:
веб-браузер А будет всегда передавать Ваш запрос, даже если он будет иметь ответ от предыдущей операции POST. Например, можно послать электронные письма с Gmail пара дней независимо. Они могут быть тем же предметом и телом, но оба электронных письма должны быть посланы.
Относительно кэширования на прокси-сервере:
А проксируют сервер HTTP, который передает Ваше сообщение к серверу, ничего никогда не кэшировал бы кроме ПОЛУЧЕНИЯ или ГЛАВНОГО запроса.
Относительно кэширования сервера:
сервер А по умолчанию автоматически не обработал бы запрос POST через проверку его кэша. Но конечно запрос POST может быть отправлен к Вашему приложению или дополнению, и у Вас может быть свой собственный кэш, который Вы читаете из того, когда параметры являются тем же.
Лишение законной силы ресурса:
Проверка RFC 2616 S. 13.10 HTTP 1.1 показывает, что метод POST должен делать недействительным ресурс для кэширования.
Конечно, это возможно. Если Вы хотите поймать запросы POST, отправленные к Вашему серверу и кэшировать данные, переданные обратно, чтобы быть снова посланными позже - никакой пот.
хитрая часть прибывает в оценку "состояния". Как Вы решаете данные, которые Вы хотите передать обратно пользователю, действительно должно быть то же? Что, если его cookie изменились - который изменяет данные, которые Вы хотите передать обратно?
Что было бы, если пользователь выполнил запрос POST к Вашей домашней странице, и с прошлого раза, когда он сделал это, другой пользователь отправил ему сообщение (использующий некоторую систему в Вашем сайте.) Необходимо было бы определить, что как изменение состояния, и отправляют новую версию домашней страницы, с уведомлением о сообщении пользователю в следующий раз, когда он загружает домашнюю страницу. Даже если параметры POST являются тем же.
According to RFC 2616 Section 9.5:
"Responses to POST method are not cacheable, UNLESS the response includes appropriate Cache-Control or Истекает срок действия полей заголовка. "
Итак, ДА, вы можете кэшировать ответ на запрос POST, но только если он приходит с соответствующими заголовками. В большинстве случаев вы не хотите кэшировать ответ. Но в некоторых случаях - например, если вы не сохранять никаких данных на сервере - это совершенно нормально.
Обратите внимание, однако, что многие браузеры, включая текущий Firefox 3.0.10, не кэшируют POST-ответ независимо от заголовков. IE в этом отношении ведет себя более умно.
Теперь , я хочу прояснить некоторую путаницу в отношении RFC 2616 S. 13.10. Метод POST для URI не «делает недействительным ресурс для кэширования», как некоторые заявили здесь. Он делает ранее кэшированную версию этого URI устаревшей, даже если его заголовки управления кешем указывали на более длительную свежесть.
git branch --contains C
с этой целью, который действительно очень полезен - он показывает Вам все ответвления, которые включают подсказку ответвления C (и тем самым содержите полную историю ответвления C). – Mark Longair 14 March 2011 в 13:38