{"id":509,"date":"2024-03-19T10:43:14","date_gmt":"2024-03-19T10:43:14","guid":{"rendered":"https:\/\/iseebugs.pl\/?p=509"},"modified":"2024-04-02T08:15:48","modified_gmt":"2024-04-02T08:15:48","slug":"protokol-http","status":"publish","type":"post","link":"https:\/\/iseebugs.pl\/index.php\/2024\/03\/19\/protokol-http\/","title":{"rendered":"Co to jest \u017c\u0105danie HTTP?"},"content":{"rendered":"\n<p>Protok\u00f3\u0142 HTTP (Hypertext Transfer Protocol) jest protoko\u0142em komunikacyjnym wykorzystywanym do przesy\u0142ania danych pomi\u0119dzy klientem a serwerem. Jest to swoista umowa jak ta komunikacja ma przebiega\u0107 tj. jak maj\u0105 wygl\u0105da\u0107 \u017c\u0105dania, odpowiedzi do nich i co ma si\u0119 sta\u0107 w razie b\u0142\u0119d\u00f3w w komunikacji pomi\u0119dzy klientem a serwerem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Z czego jest tworzone \u017c\u0105danie HTTP<\/h2>\n\n\n\n<p>\u017b\u0105danie HTTP jest tworzone z kilku element\u00f3w z czego cz\u0119\u015b\u0107 jest obligatoryjna, a cz\u0119\u015b\u0107 opcjonalna. Obowi\u0105zkowe bez kt\u00f3rych nie mo\u017cna stworzy\u0107 \u017c\u0105dania to:<\/p>\n\n\n\n<ul>\n<li>metoda HTTP<\/li>\n\n\n\n<li>adres URL<\/li>\n<\/ul>\n\n\n\n<p>Opcjonalne najcz\u0119\u015bciej wykorzystywane:<\/p>\n\n\n\n<ul>\n<li>nag\u0142\u00f3wki HTTP (HTTP headers)<\/li>\n\n\n\n<li>cia\u0142o (body)<\/li>\n\n\n\n<li>parametry \u017c\u0105dania<\/li>\n\n\n\n<li>inne&#8230;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Metody HTTP<\/h3>\n\n\n\n<p>Metody daj\u0105 sygna\u0142 serwerowi kt\u00f3ry odbiera \u017c\u0105danie jak ma dane informacje przetworzy\u0107. Istnieje wiele metod protoko\u0142u HTTP z czego ni\u017cej przedstawiam kilka podstawowych najcz\u0119\u015bciej wykorzystywanych: <\/p>\n\n\n\n<ul>\n<li>GET &#8211; pobierania danych z serwera<\/li>\n\n\n\n<li>POST &#8211; tworzenie nowych danych<\/li>\n\n\n\n<li>PUT &#8211; aktualizowanie istniej\u0105cych danych. Ca\u0142y zas\u00f3b jest wysy\u0142any do serwera i zamieniany<\/li>\n\n\n\n<li>PATCH &#8211; aktualizowanie istniej\u0105cych danych. Przesy\u0142ane s\u0105 tylko zmienione dane do serwera <\/li>\n\n\n\n<li>DELETE &#8211; usuwanie danych<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Adres URL<\/h3>\n\n\n\n<p>Jest to nazwa witryny kt\u00f3r\u0105 odpytujemy w naszym przyk\u0142adzie jest to <code>www.google.com<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Headers &#8211; nag\u0142\u00f3wki<\/h3>\n\n\n\n<p>Jest to zbi\u00f3r parametr\u00f3w kt\u00f3re mog\u0105 przekazywa\u0107 dodatkowe informacje klientowi \/ serwisowi w celu doprecyzowania zapytania. Nag\u0142\u00f3wek mo\u017ce np. informowa\u0107 jaki rodzaj informacji w ciele \u017c\u0105dania jest oczekiwany, przekazywa\u0107 dane zwi\u0105zane z security lub informowa\u0107 o lokalizacji u\u017cytkownika.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Body &#8211; cia\u0142o<\/h3>\n\n\n\n<p>W ciele nag\u0142\u00f3wka s\u0105 przekazywane wszystkie podstawowe informacje zar\u00f3wno do serwera (np. przy rejestracji u\u017cytkownika wysy\u0142ane s\u0105 dane u\u017cytkownika jak login i has\u0142o) jak i do klienta w postaci wszystkich element\u00f3w jakie pojawiaj\u0105 si\u0119 u nas w przegl\u0105darce od zwyk\u0142ego tekstu przez grafik\u0119 po muzyk\u0119, film.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-509_eb9878-95 .kt-block-spacer{height:20px;}.wp-block-kadence-spacer.kt-block-spacer-509_eb9878-95 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-509_eb9878-95\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Odpowiedzi HTTP<\/h2>\n\n\n\n<p>Odpowiedzi HTTP jest strukturalnie podobna do zapytania odpowiedzi. Nie posiada metody HTTP oraz adresu URL za to ma status odpowiedzi kt\u00f3ry powinien wskazywa\u0107 czy operacja si\u0119 powiod\u0142a, czy nie a je\u017celi nie to powinien wskazywa\u0107 gdzie wyst\u0105pi\u0142 b\u0142\u0105d. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wybrane grupy odpowiedzi HTTP<\/h3>\n\n\n\n<p>Poni\u017cej przedstawiono wybrane kody odpowiedzi z dw\u00f3ch grup wraz z opisem s\u0142ownym i kr\u00f3tkim opisem.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Kod<\/td><td>Opis s\u0142owny<\/td><td>znaczenie \/ zwracany zas\u00f3b<\/td><\/tr><tr><td>200<\/td><td>Ok<\/td><td>\u017c\u0105dany zas\u00f3b, np. przy \u017c\u0105daniu GET<\/td><\/tr><tr><td>201<\/td><td>Created<\/td><td>potwierdzenie zapisania danych na serwerze, np. stworzenie nowego u\u017cytkownika<\/td><\/tr><tr><td>204<\/td><td>No Content<\/td><td>serwer wykona\u0142 zapytanie i nie ma potrzeby zwraca\u0107 \u017cadnej tre\u015bci<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Kody powodzenia 2xx<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Kod<\/td><td>Opis s\u0142owny<\/td><td>znaczenie \/ zwracany zas\u00f3b<\/td><\/tr><tr><td>400<\/td><td>Bad request<\/td><td>b\u0142\u0119dne \u017c\u0105danie, b\u0142\u0105d u\u017cytkownika w zapytaniu np. z\u0142e body &#8211;<\/td><\/tr><tr><td>404<\/td><td>Not found<\/td><td>nie znaleziono podanego adresu URL<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Kody b\u0142\u0119d\u00f3w u\u017cytkownika 4xx<\/figcaption><\/figure>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-509_a760d0-97 .kt-block-spacer{height:20px;}.wp-block-kadence-spacer.kt-block-spacer-509_a760d0-97 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-509_a760d0-97\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Podsumowanie<\/h3>\n\n\n\n<p>Wpis mia\u0142 za zadanie kr\u00f3tko przedstawi\u0107 z jakich element\u00f3w sk\u0142adaj\u0105 si\u0119 \u017c\u0105dania HTTP oraz odpowiedzi na nie.<\/p>\n\n\n<style>.kb-image509_0843d7-e6 .kb-image-has-overlay:after{opacity:0.3;}.kb-image509_0843d7-e6 img.kb-img, .kb-image509_0843d7-e6 .kb-img img{border-top-left-radius:45px;border-top-right-radius:45px;border-bottom-right-radius:45px;border-bottom-left-radius:45px;box-shadow:3px 3px 3px 3px #000000;}<\/style>\n<figure class=\"wp-block-kadence-image kb-image509_0843d7-e6 size-blogarise-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"380\" src=\"https:\/\/iseebugs.pl\/wp-content\/uploads\/2024\/03\/HTTP-edited-720x380.webp\" alt=\"IseeBugs.pl\" class=\"kb-img wp-image-513\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Protok\u00f3\u0142 HTTP (Hypertext Transfer Protocol) jest protoko\u0142em komunikacyjnym wykorzystywanym do przesy\u0142ania danych pomi\u0119dzy klientem a serwerem. Jest to swoista umowa jak ta komunikacja ma przebiega\u0107 tj. jak maj\u0105 wygl\u0105da\u0107 \u017c\u0105dania, odpowiedzi do nich i co ma si\u0119 sta\u0107 w razie b\u0142\u0119d\u00f3w w komunikacji pomi\u0119dzy klientem a serwerem. Z czego jest tworzone \u017c\u0105danie HTTP \u017b\u0105danie HTTP [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":513,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kadence_starter_templates_imported_post":false,"footnotes":""},"categories":[31],"tags":[32,36,34,35,33],"_links":{"self":[{"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/posts\/509"}],"collection":[{"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/comments?post=509"}],"version-history":[{"count":12,"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/posts\/509\/revisions"}],"predecessor-version":[{"id":569,"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/posts\/509\/revisions\/569"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/media\/513"}],"wp:attachment":[{"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/media?parent=509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/categories?post=509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iseebugs.pl\/index.php\/wp-json\/wp\/v2\/tags?post=509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}