{"id":1,"date":"2024-03-08T13:14:19","date_gmt":"2024-03-08T13:14:19","guid":{"rendered":"http:\/\/scpcsed.cluster030.hosting.ovh.net\/?p=1"},"modified":"2024-05-15T13:34:55","modified_gmt":"2024-05-15T13:34:55","slug":"request-response-explained","status":"publish","type":"post","link":"https:\/\/howtounderstand.it\/pl\/blog\/request-response-explained\/","title":{"rendered":"\"Request rzuci\u0142 mi pi\u0119\u0107setk\u0119\", czyli o komunikacji http"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Z pewno\u015bci\u0105 obi\u0142o Ci si\u0119 o uszy kiedy\u015b, \u017ce kto\u015b wysy\u0142a \"request\". Czym jest owy \"request\"? Kto go wysy\u0142a i w\u0142a\u015bciwie to do kogo? O co chodzi, gdy kto\u015b m\u00f3wi \"dosta\u0142em 500\"? Spr\u00f3buj\u0119 to wyja\u015bni\u0107 w prostych s\u0142owach.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Czym jest komunikacja?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Poj\u0119cia \"request\" i \"response\" pojawiaj\u0105 si\u0119 najcz\u0119\u015bciej w kontek\u015bcie komunikacji. Komunikacja zazwyczaj wymaga conajmniej dw\u00f3ch rozm\u00f3wc\u00f3w. Za\u0142\u00f3\u017cmy, \u017ce rozmawiasz ze swoim kolegom z pracy, wasz dialog wygl\u0105da mniej wi\u0119cej tak:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ty: Hej, czy mo\u017cesz mi poda\u0107 nazwy naszych klient\u00f3w?\u2028<br>Kolega: Jasne, to firma A, firma B i firma C.<br>Ty: Czy mo\u017cesz mi poda\u0107 numer kontaktowy do firmy C?<br>Kolega: Oczywi\u015bcie, 111 222 333.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gratuluj\u0119, w\u0142a\u015bnie przeprowadzi\u0142e\u015b komunikacj\u0119 dwukierunkow\u0105 w modelu request-response! Komunikacja dwukierunkowa oznacza, \u017ce dla ka\u017cdego Twojego \u017c\u0105dania (\"podaj nazwy klient\u00f3w\", \"podaj numer kontaktowy\"), Tw\u00f3j rozm\u00f3wca potwierdzi\u0142, \u017ce je otrzyma\u0142 (\"jasne\", \"oczywi\u015bcie\") a nast\u0119pnie odpowiedzia\u0142 danymi o kt\u00f3re prosi\u0142e\u015b (\"firma A, firma B....\", \"111 222 333\").<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na analogicznej zasadzie dzia\u0142aj\u0105 serwisy internetowe. Gdy w pasku przegl\u0105darki wpisujesz<br><em>linkedin.com\/in\/rafa\u0142-or\u0142owski-90721490<\/em><br>M\u00f3wisz mniej wi\u0119cej: \"Hej, Linkedin, podaj mi dane u\u017cytkownika rafa\u0142-or\u0142owski-90721490\". R\u00f3\u017cnica jest tak, \u017ce m\u00f3wisz to w j\u0119zyku maszyn a nie w j\u0119zyku ludzi. I jak to ma si\u0119 do \"requestu\"?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Czym jest \u017c\u0105danie?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wpisuj\u0105c cokolwiek w pasek przegl\u0105darki wysy\u0142asz \"request\" typu GET pod podany adres URL (o tym czy jest URL za chwil\u0119). Czym jest \"typ requestu\"? Jest to spos\u00f3b na wyra\u017cenie Twoich intencji. Przegl\u0105darki internetowe s\u0105 pewnego rodzaju \"klientem http\", kt\u00f3ry ma za zadanie upro\u015bci\u0107 komunikacj\u0119 mi\u0119dzy cz\u0142owiekiem a serwisami internetowymi (np: stronami www). Na potrzeby tego artyku\u0142u nie b\u0119dziemy zag\u0142\u0119bia\u0107 si\u0119 w to, czym jest protok\u00f3\u0142 \"http\". W telegraficznym skr\u00f3cie: to techniczna specyfikacja, opisuj\u0105ca w jaki spos\u00f3b us\u0142ugi internetowe mog\u0105 si\u0119 ze sob\u0105 komunikowa\u0107. Podobnie jak standard GSM, kt\u00f3ry opisuje w jaki spos\u00f3b komunikuj\u0105 si\u0119 dwa telefony. Albo jak przepisy ruchu drogowego opisuj\u0105ce w jaki spos\u00f3b przemie\u015bci\u0107 si\u0119 autem z punku A do punktu B w bezpieczny spos\u00f3b.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wracaj\u0105c do typ\u00f3w \"request\u00f3w\", kilka podstawowych to:<br>- GET - daj mi dane. Na przyk\u0142ad poka\u017c mi profil u\u017cytkownika X.<br>- POST - wysy\u0142am Ci nowe dane, odbierz je. Za ka\u017cdym razem wstawiaj\u0105c nowe zdj\u0119cie na instagrama, wysy\u0142asz POST z za\u0142\u0105czonym plikiem graficznym. \u2028<br>- UPDATE - wysy\u0142am Ci aktualizacj\u0119 danych, Przyk\u0142adowo: zmieni\u0142a\u015b nazwisko po \u015blubie i chcesz je zaktualizowa\u0107 w swoich mediach spo\u0142eczno\u015bciowych.\u2028<br>- DELETE - skasuj dane. Masz do\u015b\u0107 social medi\u00f3w - usuwasz sw\u00f3j profil!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dane kt\u00f3re wysy\u0142amy mog\u0105 przybiera\u0107 r\u00f3\u017cn\u0105 form\u0119. Czasem mo\u017ce to by\u0107 zwyk\u0142y tekst, czasem obraz (plik w formacie .jpg, .png czy w innym formacie graficznym), a czasem ustrukturyzowane dane w jednym z popularnych format\u00f3w danych, np: JSON czy XML ale o formatach danych innym razem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Skoro wiemy ju\u017c co mo\u017cemy wys\u0142a\u0107 to teraz zastan\u00f3wmy si\u0119 gdzie mo\u017cemy wys\u0142a\u0107 nasze \u017c\u0105dania. Tak naprawd\u0119 naszym adresatem mo\u017ce by\u0107 dowolna \"us\u0142uga internetowa\" (czasem nazywany \"serwisem internetowym\" - to to samo). Tak, tak, kolejna trudna nazwa, spokojnie ju\u017c wyja\u015bniam. Pami\u0119tasz wcze\u015bniejszy przyk\u0142ad, z wpisywaniem<br><em>linkedin.com\/in\/rafa\u0142-or\u0142owski-90721490<\/em><br>w pasku przegl\u0105darki? To tak zwany URI (unified resource identifier), mo\u017cesz te\u017c spotka\u0107 okre\u015blenie URL (unified resource locator), r\u00f3\u017cnica mi\u0119dzy tymi okre\u015bleniami jest bardzo subtelna i raczej filozoficzna ni\u017c techniczna, dlatego na potrzeby tego artyku\u0142u przyjmijmy uproszczenie, \u017ce oba okre\u015blenia s\u0105 to\u017csame. Je\u015bli jeste\u015b bardzo dociekliwy i chcesz pozna\u0107 wi\u0119cej szczeg\u00f3\u0142\u00f3w zajrzyj na przyk\u0142ad <a href=\"https:\/\/monovm.com\/blog\/difference-between-uri-and-url\/?gad_source=1&amp;gclid=Cj0KCQjwwYSwBhDcARIsAOyL0fh30O-BjsZ7xh5L0VoeMRBrvrqNuqpBEzvxsPpUOz8IchHVU-ikpb4aAoZ5EALw_wcB\">tu<\/a>.<br>Us\u0142uga internetowa to tak naprawd\u0119 dowolna \"rzecz\" kt\u00f3ra kryje si\u0119 pod pewnym adresem (np: linkedin.com).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Czym jest odpowied\u017a?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Serwis do kt\u00f3rego wysy\u0142amy \u017c\u0105dnie, zawsze nam odpowiada. Odpowied\u017a sk\u0142ada si\u0119 z dw\u00f3ch kluczowych element\u00f3w: statusu odpowiedzi i danych. Wr\u00f3\u0107my do przyk\u0142adu naszej rozmowy z koleg\u0105:\u2028<br>Ty: Hej, czy mo\u017cesz mi poda\u0107 nazwy naszych klient\u00f3w?<br>Kolega: Jasne, to firma A, firma B i firma C.<br>W tym przypadku nasze \u017c\u0105danie (\"podaj nazwy klient\u00f3w\") zosta\u0142o przetworzone poprawnie (\"jasne\") i zwr\u00f3cono nam dane (\"firma A, firma B i firma C\"). Gdyby\u015bmy otrzymali odpowied\u017a:\u2028<br>\"Nie mog\u0119. Tylko kierownik dzia\u0142u mo\u017ce otrzyma\u0107 pe\u0142n\u0105 list\u0119 klient\u00f3w\"\u2028to nasze \u017c\u0105danie nie zosta\u0142o obs\u0142u\u017cone poprawnie (\"nie mog\u0119\") ale nasz kolega by\u0142 na tyle mi\u0142y,\u00a0\u017ce otrzymali\u015bmy odpowied\u017a: \"Tylko kierownik dzia\u0142u mo\u017ce otrzyma\u0107 pe\u0142n\u0105 list\u0119 klient\u00f3w\". M\u00f3g\u0142 by\u0107 niemi\u0142y i odpowiedzie\u0107 tylko \"Nie mog\u0119\".<br>W naszym \"\u015bwiecie http\" za powiedzenie \"jasne, tu s\u0105 dane\" albo \"niestety, nie mog\u0119\" odpowiedzialne s\u0105 statusy. Statusy s\u0105 to 3 cyfrowe warto\u015bci z zakresu 100-599 - do\u015b\u0107 dziwny przedzia\u0142, prawda?\u2028<br>Ju\u017c t\u0142umacz\u0119 sk\u0105d taki nietopowy zakres warto\u015bci. Pierwsza cyfra (1,2,3,4 lub 5) okre\u015bla \"kategori\u0119 status\", mianowicie:\u2028<br>1xx - przyj\u0119to wiadomo\u015b\u0107, przetwarzam, nie wiem kiedy sko\u0144cz\u0119. W praktyce bardzo rzadko spotykane.\u2028<br>2xx - sukces! Tych status\u00f3w chcieliby\u015bmy widzie\u0107 najwi\u0119cej. Znacz\u0105, \u017ce uda\u0142o si\u0119 zrobi\u0107 dok\u0142adnie to co chcieli\u015bmy zrobi\u0107.\u2028<br>3xx - przekierowano. Czyli taki troch\u0119 sukces ale nasze \u017c\u0105danie musia\u0142o zosta\u0107 przekierowane w inne miejsce, i czy si\u0119 finalnie uda czy nie to ju\u017c si\u0119 dowiemy w odpowiedzi z tego innego miejsca. To skomplikowane, \u017ceby nie wchodzi\u0107 w szczeg\u00f3\u0142y, uznajmy, \u017ce to takie \"\u017c\u0105dnie jest ok, przekierowano je na inny URL\". W praktyce wykorzystywane w bardziej z\u0142o\u017conych systemach, do obs\u0142ugiwania bardziej nietypowych scenariuszy komunikacji.\u2028<br>4xx - nie uda\u0142o si\u0119 przetworzy\u0107 Twojego \u017c\u0105dania. Przes\u0142ano nieprawid\u0142owe dane. W praktyce oznacza to, \u017ce wys\u0142a\u0142e\u015b niepoprawny request.<br>5xx - nie uda\u0142o si\u0119 przetworzy\u0107 Twojego \u017c\u0105dania, jednak tym razem to b\u0142\u0105d po stronie serwisu do kt\u00f3rego wys\u0142a\u0142e\u015b request. Innymi s\u0142owy: Tw\u00f3j request wydaje si\u0119 by\u0107 ok, ale serwis z jakiego\u015b powodu nie by\u0142\u00a0w stanie zrobi\u0107 tego o co go prosi\u0142e\u015b. Odpowiedzi ze statusem 5xx s\u0105 zazwyczaj najbardziej tajemnicze.<br>Wszystkie standardowe statusy wraz z wyja\u015bnieniami mog\u0105 by\u0107 znalezione na <a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_HTTP_status_codes\">wikipedii<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jak wspomnia\u0142em wcze\u015bniej, poza statusami w odpowiedzi otrzymujemy (zazwyczaj) r\u00f3wnie\u017c dane. Tu, podobnie jak w przypadku \"requestu\" nie ma jednej odpowiedzi na pytanie \"jakie dane\". W zale\u017cno\u015bci od us\u0142ugi z kt\u00f3r\u0105 si\u0119 komunikujemy, mo\u017ce to by\u0107 plik (d\u017awi\u0119k, obraz, dokument), tekst (np: tre\u015b\u0107 tego artyku\u0142u), lub dane ustrukturyzowane w jendym z popularnych format\u00f3w (np: JSON, XML).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wracaj\u0105c do przyk\u0142adu \"Hej, czy mo\u017cesz mi poda\u0107 nazwy naszych klient\u00f3w?\", kolejne odpowiedzi mog\u0105 by\u0107 postrzegane jako:\u2028<br>\"Jasne, to firma A, firma B i firma C.\" - status odpowiedzi: 200 (ok), dane: \"firma A, firma B i firma C\".\u2028<br>\"Nie mog\u0119. Tylko kierownik dzia\u0142u mo\u017ce otrzyma\u0107 pe\u0142n\u0105 list\u0119 klient\u00f3w\" - status odpowiedzi: 403 (\"zabronione\", ang. \"forbidden\"), dane: \"Tylko kierownik dzia\u0142u mo\u017ce otrzyma\u0107 pe\u0142n\u0105 list\u0119 klient\u00f3w\".\u2028<br>\"Nie mog\u0119.\" - status odpowiedzi: 500 (\"wewn\u0119trzny b\u0142\u0105d serwera\", ang \"Internal Server Error\"), brak jakichkolwiek danych.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jak to wszystko po\u0142\u0105czy\u0107?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To wszystko mo\u017ce brzmie\u0107 bardzo abstrakcyjnie ale spr\u00f3bujmy to jako\u015b podsumowa\u0107. Wyobra\u017a sobie, \u017ce z jakiego\u015b dziwnego powodu internet nagle przestaje istnie\u0107 (mo\u017ce to by\u0107 atak kosmit\u00f3w kt\u00f3rzy zag\u0142uszyli sygna\u0142y na ca\u0142ym \u015bwiecie, ma\u0142e, podst\u0119pne rekino-trole kt\u00f3re poprzegryza\u0142y wszystkie kable albo dowolny inny absurdalny pow\u00f3d). Wyobra\u017a sobie r\u00f3wnie\u017c, \u017ce wszystkie gigantyczne portale internetowe (Google, LinkedIn, Instagram etc.) nadal chc\u0105 prowadzi\u0107 swoj\u0105 dotychczasow\u0105 dzia\u0142alno\u015b\u0107. I ostatnie za\u0142o\u017cenie, najbardziej absurdalne ale idealnie pasuj\u0105ce do naszego artyku\u0142u: portale internetowe nie b\u0119d\u0105 \u015bwiadczy\u0107 swoich us\u0142ug przez internet (bo nie istnieje) ale przez poczt\u0119. Tak\u0105 tradycyjn\u0105. Z kopertami, listami, listonoszami na rowerach, skrzynkami pocztowymi poustawianymi w r\u00f3\u017cnych cz\u0119\u015bciach miasta.... Tak wi\u0119c Instagram przestaje by\u0107 \"portalem internetowym\" a zaczyna by\u0107 \"portalem... pocztowym?\", witamy w nowej rzeczywisto\u015bci!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W\u0142a\u015bnie zrobi\u0142e\u015b sobie cudowne selfie swoim odkopanym na strychu Polaroidem (dla m\u0142odszych czytelnik\u00f3w: to taki \"instax\" dla starych ludzi) i chcesz je oczywi\u015bcie wstawi\u0107 na Instagrama. Tak, tego \"pocztowego Instagrama\". Bierzesz wi\u0119c kopert\u0119, adresujesz j\u0105: \"Instagram. Menlo Park, California, US\", do koperty wk\u0142adasz swoje zdj\u0119cie i wrzucasz do skrzynki pocztowej. Po kilku dniach otrzymujesz list od Instagrama, kt\u00f3rego tre\u015b\u0107 brzmi: \"dzi\u0119kujemy za przes\u0142anie zdj\u0119cia, otrzymali\u015bmy je i umie\u015bcili\u015bmy na Twoim profilu\".<br>Gratuluje, w\u0142a\u015bnie wys\u0142a\u0142e\u015b request:<br>typu POST<br>na URL: <a href=\"http:\/\/instagram.com\">instagram.com<\/a><br>z danymi graficznymi, Twoim zdj\u0119ciem<br>i otrzyma\u0142e\u015b odpowied\u017a 201 (utworzono).<br><br>Oczywi\u015bcie, nie mia\u0142oby to sensu, gdyby Twoi bliscy nie mogli zobaczy\u0107 Twojego nowego, analogowego selfie! Wi\u0119c Tw\u00f3j najlepszy przyjaciel, zaraz po obudzeniu, si\u0119ga po kopert\u0119, adresuje j\u0105:<br>&#8220;Instagram. Menlo Park, California, US&#8221;<br>\"Departament Nowych Zdj\u0119\u0107 Udost\u0119pnionych Przez Moich Przyjaci\u00f3\u0142\"<br>i wysy\u0142a bez \u017cadnej zawarto\u015bci. Po kolejnych kilku dniach, otrzymuje list zwrotny z kopert\u0105 wype\u0142nion\u0105 zdj\u0119ciami swoich przyjaci\u00f3\u0142 - w tym Twoje selfie!<br>Przek\u0142adaj\u0105c to na komunikacj\u0119 http, Tw\u00f3j przyjaciel wys\u0142a\u0142 request<br>typu GET<br>na URL:&nbsp; <a href=\"http:\/\/instagram.com\/DepartmentNewPicturesSharedByMyFriends\">instagram.com\/DepartmentNewPicturesSharedByMyFriends<\/a><br>bez \u017cadnej tre\u015bci \u2028i w odpowiedzi otrzyma\u0142 odpowied\u017a 200 (ok)\u2028oraz dane: zdj\u0119cia swoich przyjaci\u00f3\u0142.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tak w du\u017cym uproszczeniu dzia\u0142a komunikacja http, czyli wysy\u0142anie \"request\u00f3w\" i odbieranie \"respons\u00f3w\". Jak widzisz du\u017co \u0142atwiej prowadzi\u0107 media spo\u0142eczno\u015bciowe za pomoc\u0105 internetu ni\u017c tradycyjnej poczty, cho\u0107 mechanizmy ich dzia\u0142ania s\u0105 bardzo podobne!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Czy mog\u0119 sam\/sama wysy\u0142a\u0107 requesty?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Oczywi\u015bcie! Potrzebujesz do tego \"klienta http\". To nic innego jak aplikacja kt\u00f3ra pozwoli Ci \u0142adnie zaadresowa\u0107 Twoj\u0105 kopert\u0119, w\u0142o\u017cy\u0107 do \u015brodka tre\u015b\u0107 a ca\u0142o\u015b\u0107 wys\u0142a\u0107 pod wskazany adres. Najprostszym klientem http jest przegl\u0105darka internetowa. Sprawd\u017amy to!<br>Potrzebujemy jakiego\u015b serwisu z kt\u00f3rym mogliby\u015bmy prowadzi\u0107 nasz\u0105 korespondencj\u0119! Na szcz\u0119\u015bcie dobrzy ludzie stworzyli przyk\u0142adowe us\u0142ugi kt\u00f3re w\u0142a\u015bciwie nie robi\u0105 nic poza symulowaniem zachowa\u0144 prawdziwych us\u0142ug, czyli mo\u017cemy wysy\u0142a\u0107 do nich \"requesty\" i odbiera\u0107 \"responsy\" ale nie powoduje to \u017cadnych faktycznych akcji w tych us\u0142ugach.\u2028<br>Jednym z takich przyk\u0142ad\u00f3w mo\u017ce by\u0107 <a href=\"https:\/\/dummyjson.com\/docs\">dummyjson.com<\/a> which simulates an e-commerce service and operates on data in JSON format.<br><br>Je\u015bli wkleisz w pasek przegl\u0105darki <em>https:\/\/dummyjson.com\/products<\/em> you will see all the products in our &#8220;dummy store&#8221;. Congratulations, you have just sent a GET to the URL https:\/\/dummyjson.com\/products !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Niestety wysy\u0142anie \u017c\u0105da\u0144 innych ni\u017c GET, jest do\u015b\u0107 k\u0142opotliwe za pomoc\u0105 przegl\u0105darki, da si\u0119 to zrobi\u0107 ale wymaga to odrobiny magii a przecie\u017c w pierwszym akapicie napisa\u0142em \"w prostych s\u0142owach\"....\u2028<br>Dlatego u\u017cyjmy innego klienta http, np: <a href=\"https:\/\/restninja.io\/\">restninja.io<\/a> - to strona internetowa kt\u00f3ra pe\u0142ni rol\u0119 klienta http. Tak, taka pokr\u0119tna forma incepcji ale dzia\u0142a! Mo\u017cesz oczywi\u015bcie wybra\u0107 dowolnego innego klienta, np: <a href=\"https:\/\/www.postman.com\/\">postman.com<\/a>, <a href=\"https:\/\/insomnia.rest\/\">insomnia.rest<\/a>, <a href=\"https:\/\/httpie.io\/\">httpie.io<\/a> ale rest ninja wydaje mi si\u0119 jednym z prostszych.<br><br>Inn\u0105 funkcj\u0105 udost\u0119pnian\u0105 przez <a href=\"https:\/\/dummyjson.com\/docs\">dummyjson.com<\/a> jest mo\u017cliwo\u015b\u0107 dodawania nowych produkt\u00f3w do sklepu. Aby to zrobi\u0107 nale\u017cy wys\u0142a\u0107 POST na URL <em>https:\/\/dummyjson.com\/products\/add<\/em> z danymi w formacie JSON, kt\u00f3re musz\u0105 zawiera\u0107 pole \"title\". Na poni\u017cszym screenie mo\u017cesz zobaczy\u0107 jak wykona\u0107 taki request za pomoc\u0105 rest ninja:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"237\" src=\"http:\/\/scpcsed.cluster030.hosting.ovh.net\/wp-content\/uploads\/2024\/03\/Zrzut-ekranu-2024-03-25-o-14.24.11-1024x237.png\" alt=\"\" class=\"wp-image-30\" style=\"width:838px;height:auto\" srcset=\"https:\/\/howtounderstand.it\/wp-content\/uploads\/2024\/03\/Zrzut-ekranu-2024-03-25-o-14.24.11-1024x237.png 1024w, https:\/\/howtounderstand.it\/wp-content\/uploads\/2024\/03\/Zrzut-ekranu-2024-03-25-o-14.24.11-300x70.png 300w, https:\/\/howtounderstand.it\/wp-content\/uploads\/2024\/03\/Zrzut-ekranu-2024-03-25-o-14.24.11-768x178.png 768w, https:\/\/howtounderstand.it\/wp-content\/uploads\/2024\/03\/Zrzut-ekranu-2024-03-25-o-14.24.11-18x4.png 18w, https:\/\/howtounderstand.it\/wp-content\/uploads\/2024\/03\/Zrzut-ekranu-2024-03-25-o-14.24.11.png 1048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Jako niezwykle spostrzegawczy adept nowej sztuki http-ingu (nie ma takiego s\u0142owa, w\u0142a\u015bnie je wymy\u015bli\u0142em) na pewno zauwa\u017cy\u0142e\u015b tajemnicze zak\u0142adki headers i auth. To tak zwane \"meta-dane\" request\u00f3w. Zawieraj\u0105 wszystkie dodatkowe informacje o naszej komunikacji (o jej bardziej technicznych szczeg\u00f3\u0142ach), by\u0107 mo\u017ce pope\u0142ni\u0119 o nich osobny artyku\u0142, bie\u017c\u0105cy mia\u0142 by\u0107 prosty, wi\u0119c pozwol\u0119 sobie pomin\u0105\u0107 t\u0105 cz\u0119\u015b\u0107.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zach\u0119cam do samodzielnego \"poklikania\" zar\u00f3wno w dokumentacj\u0119 dummyjson.com jak i w restninja.io. Mi\u0142ej zabawy!<\/p>","protected":false},"excerpt":{"rendered":"<p>Surely you have heard at some point that someone sends a &#8220;request&#8221;.\u00a0 What is this &#8220;request&#8221;? Who sends it and actually to whom? What is it about when someone says &#8220;I got 500&#8221;? Let me try to explain it in simple words. What communication is? The terms &#8220;request&#8221; and &#8220;response&#8221; are most often used in [&hellip;]<\/p>","protected":false},"author":1,"featured_media":72,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4,5],"tags":[],"class_list":["post-1","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-comunication","category-http","category-web"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/howtounderstand.it\/wp-content\/uploads\/2024\/03\/pexels-photo-1587014.jpeg","_links":{"self":[{"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/posts\/1","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/comments?post=1"}],"version-history":[{"count":35,"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":73,"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/posts\/1\/revisions\/73"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/media\/72"}],"wp:attachment":[{"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/media?parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/categories?post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howtounderstand.it\/pl\/wp-json\/wp\/v2\/tags?post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}