〰️
Programming with Java
  • Програмиране с JAVA
  • Обектно-ориентирано програмиране - 1 част
    • Лабораторно упражнение 1
      • Основи на програмирането с Java за начинаещи‎
        • Oбщи термини в Java
        • Основни характеристики на JAVA‎
        • Инсталиране на JDK
        • Инсталиране на Intellij
      • Първа програма в Java
      • Системен изход в JAVA
      • Дефиниране на променливи
      • Примитивни типове данни
      • Оператори
      • If-else
      • Switch-Case
      • For loop
      • While loop
      • Do-while loop
      • Continue
      • Break
      • Задачи
    • Лабораторно упражнение 2
      • Клас
      • Обект
      • Ключова дума new
      • Запазена дума static
      • Конвенции за именуване в Java
      • Wrapper Class
      • Сравняване на
      • Нуждата Wrapper Class
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 3
      • Наследяване
      • this и super
      • Модификатори за достъп
      • Капсулиране
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 4
      • Проследяване на грешки
      • Оценяване на изрази
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 5
      • Полиморфизъм
      • Абстрактен клас
      • Интерфейс
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 6
      • Разлика между Абстрактен клас и Интерфейс
        • Разлика 1
        • Разлика 2
        • Разлика 3
        • Разлика 4
        • Разлика 5
        • Разлика 6
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 7
      • String
      • Enum
      • Обработка на изключения
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 8
      • Генерични класове
      • Генеричен метод
      • Параметри на типа в Java Generics
      • Предимства на генериците
      • Генериците работят само с референтни типове
    • Лабораторно упражнение 9
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 10
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 11
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 12
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 13
      • Упражнения за извънаудиторна заетост
      • Упражнения за извънаудиторна заетост
  • Обектно-ориентирано програмиране - 2 част
    • Лабораторно упражнение 1
      • SRP - Single Responsibility Principle
        • Задачи
      • OCP - Open-Closed Principle
        • Задачи
    • Лабораторно упражнение 2
      • LSP - Liskov Substitution Principle
        • Задачи
      • ISP - Interface Segregation Principle
        • Задачи
      • DI - Dependency Inversion Principle
        • Задачи
    • Лабораторно упражнение 3
      • Singleton
        • Задачи
      • Builder
        • Задачи
    • Лабораторно упражнение 4
      • Factory Method
      • Abstract Factory
      • Задачи
    • Лабораторно упражнение 5
    • Лабораторно упражнение 6
      • Decorator
      • Bridge
        • Композиция
      • Задачи
    • Лабораторно упражнение 7
      • Adapter
      • Задачи
    • Лабораторно упражнение 8
      • Composite
      • Proxy
      • Задачи
    • Лабораторно упражнение 9
    • Лабораторно упражнение 10
      • Visitor
      • State
      • Задачи
    • Лабораторно упражнение 11
      • Observer
      • Задачи
    • Лабораторно упражнение 12
      • Chain of Responsibility
      • Command
      • Задачи
    • Лабораторно упражнение 13
  • Интернет технологии 2023
    • Лабораторно упражнение 1
      • HTTP протокол
        • Синтаксис на URL
        • HTTP съобщения
        • Методи за HTTP заявка
        • Кодове за състояние на HTTP отговор
      • Postman
        • Изпращане на заявка с Postman
        • Получаване на отговор
      • Задачи за работа с Postman
    • Лабораторно упражнение 2
      • Работа с Tomcat
      • Maven
      • Създаване на Maven проект в IntelliJ Ultimate Edition
      • Създаване на Maven проект в IntelliJ Community Edition
      • Създаване на Maven проект в Eclipse IDE
    • Лабораторно упражнение 3
      • Java Servlets
      • Жизнен цикъл на сървлета
      • Създаване на сървлети
      • Задачи за създаване на сървлети
    • Лабораторно упражнение 4
      • Extensible Markup Language
      • Java Architecture for XML Binding
      • JavaScript Object Notation
      • Задачи
    • Лабораторно упражнение 5
    • Лабораторно упражнение 6
      • Spring Boot
      • Създаване на Spring boot проект
      • Структура на Spring Boot проект
        • Файлът pom.xml
        • Main клас в Spring Boot
        • Управление на конфигурацията с application.properties
      • Задача
    • Лабораторно упражнение 7
      • Комуникационен поток и CRUD операции
      • ResponseEntity
      • Избрани анотации
      • Задача
    • Лабораторно упражнение 8
      • Lombok
      • Data transfer object (DTO)
      • Обработване на изключения в Spring Boot приложение
        • Клас Optional<T>
      • Валидиране на данните от заявката
      • Задачи
    • Лабораторно упражнение 9-10
      • Конфигуриране на PostgreSQL DB
      • Jakarta Persistence анотации
      • Repository слой
      • Задачи
    • Лабораторно упражнение 11
      • Проследяване на сесии
      • Филтри и FilterChain
      • Spring Security
        • Добавяне на Spring Security в Spring Boot приложение
        • Конфигуриране на филтри
        • Удостоверяване със Spring Security
        • Защита на метод със Spring Security
      • Задача
    • Лабораторно упражнение 12
      • JSON Web Token
      • Защита с помощта на JWT
      • Задача
    • Лабораторно упражнение 13
  • Програмиране за мобилни и Интернет устройства
    • Лабораторно упражнение 1
      • Задачи
    • Лабораторно упражнение 2
      • Среда за разработване
        • Създаване на проект
        • Структора на проект
        • Виртуално устройство с Android OS
      • Задача
    • Лабораторно упражнение 3
      • Activity
      • Layout
        • XML описание
      • Задача
    • Лабораторно упражнение 4
      • Activity Lifecycle
      • Intent
      • Слушатели на събитията и методи за обратно извикване
      • Задача
    • Лабораторно упражнение 5
      • Слушатели на събитията и методи за обратно извикване
      • Задача
    • Лабораторно упражнение 6
      • Фрагменти
      • DialogFragment
      • Задача
    • Лабораторно упражнение 7
      • Примери
        • BaseAdapter
        • ArrayAdapter
        • Custom ArrayAdapter
      • RecyclerView
        • Пример
      • CardView
      • Задача
    • Лабораторно упражнение 8
      • Runnable
      • HandlerThread
      • ThreadPoolExecutor
      • Задача
    • Лабораторно упражнение 9
      • Задача
      • Задача
      • Пример
  • Интернет Технологии
    • Лабораторно упражнение 1
      • Инсталиране и настройка на необходимата среда за работа в упражненията
      • Maven
      • Създаване на Maven проект в Eclipse IDE
      • Създаване на Maven проект в IntelliJ
      • Работа с Tomcat
      • Задача
    • Лабораторно упражнение 2
      • HTML форми
      • Cascading Style Sheets (CSS)
        • CSS селектори
        • Някои CSS свойства
      • Задача
    • Лабораторно упражнение 3
      • Java Servlets
      • Жизнен цикъл на сървлета
      • Създаване на сървлети
      • Задачи
    • Лабораторно упражнение 4
      • Java Server Pages технология. Същност и детайли
      • Пренасочване между Servlet и JSP
      • Задачи
    • Лабораторно упражение 5
      • Build pattern
      • JavaBean
      • Задачи
    • Лабораторно упражение 6
      • Проследяване на сесии
      • Управление на бисквитки (Cookies)
      • Задачи
    • Лабораторно упражнение 7
      • Проследяване на сесии
      • Управление на бисквитки (Cookies)
      • Servlet Filter
      • Задачи
    • Лабораторно упражнение 8
      • Servlet Filter
      • Прихващане на грешки
      • Задачи
    • Лабораторно упражнение 9
      • Extensible Markup Language
      • JavaScript Object Notation
        • Fetch
      • Задача
    • Лабораторно упражнение 10
      • Java Architecture for XML Binding
      • Задачи
Powered by GitBook
On this page
  • GET
  • POST
  • PUT
  • DELETE
  • PATCH
  • HEAD
  • CONNECT
  • OPTIONS
  • TRACE

Was this helpful?

  1. Интернет технологии 2023
  2. Лабораторно упражнение 1
  3. HTTP протокол

Методи за HTTP заявка

PreviousHTTP съобщенияNextКодове за състояние на HTTP отговор

Last updated 2 years ago

Was this helpful?

HTTP дефинира набор от методи за заявка, за да посочи желаното действие, което да бъде извършено за даден ресурс. Всеки от тях изпълнява различна семантика, но някои общи характеристики се споделят от група от тях: напр. метод на заявка може да бъде безопасен, идемпотентен или кеширащ.

GET

Методът GET изисква предоставяне на посочия ресурс. Заявките, използващи GET, трябва да извличат само данни.

Твърди се, че това е безопасен метод, тъй като не променя състоянието на ресурса. Методът GET е идемпотентен. Следователно извикването на този метод многократно винаги ще дава същия резултат.

GET e методът на заявка по подразбиране. При него данните се изпращат посредством заглавната част на заявката. Двойките name-value, съдържащи предаваните данни, се добавят към URL адреса като query string.

http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2

Пример за GET заявка:

Други характеристики на GET заявките са:

· Остават в историята на браузъра;

· Могат да се добавят в „отбелязани“ (bookmarked);

· Могат да се кешират;

· Имат ограничения за дължината на предаваните параметри;

· Никога не трябва да се използват при работа с чувствителни данни;

· Трябва да се използват само за извличане на данни.

POST

Методът POST изпраща обект на посочения ресурс, често причинявайки промяна в състоянието или странични ефекти на сървъра.

HTTP методът POST изпраща данни към сървъра. Типът на тялото на заявката се определя от хедъра Content-Type. Разликата между PUT и POST е, че PUT е идемпотентен: извикването му веднъж или няколко пъти последователно има същия ефект, докато последователните идентични POST могат да имат допълнителни ефекти, като например създаване на поръчка многократно. POST заявката обикновено се изпраща чрез HTML форма и води до промяна на сървъра. В този случай типът съдържанието се избира чрез поставяне на подходящатата стойност на атрибута enctype на елемента <form> или атрибута formenctype на елементите <input> или <button>:

· application/x-www-form-urlencoded: ключовете и стойностите са кодирани в двойки ключ-стойност, разделени с '&', с '=' между ключ и стойност. Небуквено-цифровите знаци и в ключовете, и в стойностите са процентно кодирани: това е причината този тип да не е подходящ за използване с двоични данни (вместо това използвайте multipart/form-data)

· multipart/form-data: всяка стойност се изпраща като блок от данни, с дефиниран от потребителския агент разделител, разделящ всяка част.

· text/plain

При този метод двойките име-стойност, съдържащи предаваните данни, се изпращат посредством тялото на заявката.

Други характеристики на POST заявките са:

· Не могат да бъдат отметнати (bookmarked);

· Нямат ограничения за дължина на данните;

· Не се кешират;

· Не се запазват в историята на браузъра

PUT

Методът за заявка PUT създава нов ресурс или замества целевия ресурс с пренасяните от заявката данни. Разликата между PUT и POST е, че PUT е идемпотентен: извикването му веднъж или няколко пъти последователно има същия ефект, докато последователните идентични POST заявки могат да имат допълнителни ефекти, подобни на пускането на поръчка няколко пъти.

DELETE

Методът DELETE се използва за изтриване на посочения ресурс.

PATCH

Методът PATCH прилага частични модификации към ресурс. Заявка за PATCH се счита за набор от инструкции как да се модифицира ресурс, за разлика от PUT, който пълно представя ресурса.

PATCH не е непременно идемпотентен, въпреки че може да бъде. За разлика от PUT, който винаги е идемпотентен. Думата "идемпотентен" означава, че произволен брой повтарящи се идентични заявки ще оставят ресурса в същото състояние. Например, ако автоматично увеличаващо се поле за брояч е неразделна част от ресурса, тогава PUT естествено ще го презапише (тъй като презаписва всичко), но не е задължително да е така за PATCH. PATCH (като POST) може да има странични ефекти върху други ресурси.

HEAD

Методът HEAD иска отговор, идентичен на GET заявка, но без тялото на отговора.

HEAD изисква хедърите, които биха били върнати, ако URL адресът на заявката HEAD е поискан с метода GET. Например, ако URL може да доведе до изтегляне с голям обем, заявка HEAD може да прочете заглавката си Content-Length, за да провери размера на файла, без действително да го изтегли.

CONNECT

Методът CONNECT установява тунел към сървъра, идентифициран от целевия ресурс.

CONNECT стартира двупосочна комуникация с искания ресурс. Може да се използва например за достъп до уебсайтове, които използват SSL (HTTPS). Клиентът иска от HTTP прокси сървър да тунелира TCP връзката до желаната дестинация. След това сървърът продължава да осъществява връзката от името на клиента. След като връзката бъде установена от сървъра, прокси сървърът продължава да проксира TCP потока към и от клиента.

OPTIONS

Методът OPTIONS описва комуникационните опции за целевия ресурс.

Изисква разрешени опции за комуникация за даден URL или сървър. Клиентът може да посочи URL адрес с този метод или астерикс (*), за да посочи целия сървър.

TRACE

Методът TRACE извършва тест за обратна връзка на съобщението по пътя до целевия ресурс, осигурявайки полезен механизъм за отстраняване на грешки.