• Nem Talált Eredményt

Http használata

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Http használata"

Copied!
38
0
0

Teljes szövegt

(1)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Http használata

Dr. Bilicki Vilmos

Szoftverfejlesztés Tanszék

(2)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Az előző előadás összefoglalója

4Angular Routing, Navigation

■ Router import

■ Konfiguráció

■ Router outlet

■ Router link

■ Aktív router link

■ Router állapot

■ Aktivált útvonal

■ Router események

2019. 04. 16. Webfejlesztés keretrendszerek 2

(3)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Összefoglaló

4Angular HTTP

■ Szolgáltatás igénybevétele

■ JSON feldolgozása, ellenőrzése

■ Hiba kezelés

■ Hiba részletek

– retry()

■ Observables és operátorok

■ Nem JSON adat kérése

■ POST, DELETE, PUT

■ A kérés konfigurálása - kérés, válasz elkapása

■ Előrehaldás események

■ XSRF

■ Saját süti, fejléc

4Service worker

2019. 04. 16. Webfejlesztés keretrendszerek 3

(4)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

HTTP

4A legtöbb kliens oldali alkalmazás HTTP segítségével kommunikál a háttér

rendszerrel.

4A modern web böngészők két megoldást biztosítanak a HTTP kezelésére:

■ XMLHttpRequest interfész

■ fetch() API

4Az @angular/common/http-ben lévő HttpClient API egy egyszerű az

XMLHttpRequest interfészre építő API-t biztosít

2019. 04. 16. Webfejlesztés keretrendszerek 4

(5)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

XMLHttpRequest

2019. 04. 16. Webfejlesztés keretrendszerek 5

(6)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

fetch()

2019. 04. 16. Webfejlesztés keretrendszerek 6

(7)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

HttpClient

2019. 04. 16. Webfejlesztés keretrendszerek 7

(8)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Konfig

2019. 04. 16. Webfejlesztés keretrendszerek 8

(9)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Típus kényszerítés

2019. 04. 16. Webfejlesztés keretrendszerek 9

(10)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

A teljes válasz kiolvasása

2019. 04. 16. Webfejlesztés keretrendszerek 10

(11)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Hibakezelés

2019. 04. 16. Webfejlesztés keretrendszerek 11

(12)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Hiba részletek

2019. 04. 16. Webfejlesztés keretrendszerek 12

(13)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Tranziens hibakezelés

2019. 04. 16. Webfejlesztés keretrendszerek 13

(14)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Nem JSON adat

2019. 04. 16. Webfejlesztés keretrendszerek 14

(15)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Adatok feltöltése

2019. 04. 16. Webfejlesztés keretrendszerek 15

(16)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Adatok törlése

2019. 04. 16. Webfejlesztés keretrendszerek 16

(17)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Adatok frissítése

2019. 04. 16. Webfejlesztés keretrendszerek 17

(18)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

PUT vs. POST

PUT POST

A RFC-2616 alapján a PUT művelettel a küldött entitást a megadott kérés URI-val megadott címen kell tárolni, vagy frissíteni (amennyiben van ilyen elem).

PUT /questions/{question-id}

A POST művelet segítségével új elemet töltünk fel az URI-val megadott helyre. Az URI a csoport URI- ja.

POST /questions

A PUT művelet idempotens, akárhányszor ismételjük a vége ugyanaz lesz.

A POST NEM idempotens. Ahányszor meghívjuk annyiszor tölti fel.

Akkor használjuk a PUT-ot, ha meglévő elemet szeretnénk módosítani. A PT teljesen kicseréli, amennyiben csak módosítani szeretnénk akkor használjuk a PATCH-et.

Akkor használjuknk POST-ot amikor erőforrás gyűjteményben gyermek elemet szeretnénk hozzáadni.

A PUT idempotens, így gyorstótárazható. A válasz nem gyorsítótárazható. (igen, de konfigurálni kell)

A módosítás műveletekhez célaszerű PUT-ot használni.

A LÉTREHOZÁS műveletkehez használjuk a POST-ot.

2019. 04. 16. Webfejlesztés keretrendszerek 18

(19)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

PUT vs POST

2019. 04. 16. Webfejlesztés keretrendszerek 19

(20)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Fejlécek konfigurálása

4Nem tudjuk a meglévő fejléceket módosítani.

4A set() metódus egy másolatot ad vissza ezt módosíthatjuk.

2019. 04. 16. Webfejlesztés keretrendszerek 20

(21)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Kérések leállítása

2019. 04. 16. Webfejlesztés keretrendszerek 21

(22)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

2019. 04. 16. Webfejlesztés keretrendszerek 22

(23)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

HTTP kérések elkapása

4Az Interceptor képességek segítségével lehet a kliensről a szerverre irányuló és onnan érkezőHTTP forgalmat:

■ elemezni

■ átalakítani

4Az egyes elkapó elemeket előre és visszairányú láncokba rendezhetjük.

4Tipikus feladatok:

■ azonosítás

■ naplózás

■ …

2019. 04. 16. Webfejlesztés keretrendszerek 23

(24)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Előrehaladás kezelése

4Egyes estekben a feltöltés hosszú időt vehet igénybe.

4A felhazsnálónak érdemes visszajelezni, hogy hol tart a tranzakció.

4A nyomonköbetéshez a HttpRequest reportProgress tulajdonságát kell

engedélyezni.

2019. 04. 16. Webfejlesztés keretrendszerek 24

(25)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Szolgáltatás

2019. 04. 16. Webfejlesztés keretrendszerek 25

(26)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

2019. 04. 16. Webfejlesztés keretrendszerek 26

(27)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

XSFR

4A Cross-Site Request Forgery (XSRF) egy támadás típus ahol a támadó a flehazsnálót

nemkívánt műveletek végrehajtásráa bírhatja rá

2019. 04. 16. Webfejlesztés keretrendszerek 27

(28)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Védekezés

4 A HTTP kérés küldésekor,

■ egy elkapó kiolvassa a megfelelő címkét a sütiből, alapértelmezésben XSRF-TOKEN,

■ és beállítja mint X-XSRF-TOKEN HTTP fejlécet

4 Mivel a sütihez, csak adott URL-ről lehet hozzáférni ezért a szevrer csak azon kéréseket engedélyezi aho ez a süti megvan

2019. 04. 16. Webfejlesztés keretrendszerek 28

(29)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Service Workers: bevezető

4A service worker egy olyan szkript amelyet a webböngésző a háttérben futtat.

4Elkülönül a wbeoldal életétől lehetővé teszi a háttér folyamatok megvalósítását 4Olyan megoldásoka mint

■ push értesítés

■ háttér szinkronizáció

■ …

2019. 04. 16. Webfejlesztés keretrendszerek 29

(30)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Service Worker

4 Egy JavaScript Worker, nem fér hozzá a DOM-hoz. Az oldalt kezelő szállal a postMessage interfacen keresztül

kommunikálhat.

4 A service worker egy programozható hálóztai proxy funkciót is betölthet.

4 A rendszer a service worker életútját a többi elemtől függetlenül menedszeli, perzisztens adatok tárolására nem alkalmas..

4 Erre pl az IndexedDB API alkalmas.

2019. 04. 16. Webfejlesztés keretrendszerek 30

(31)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Előfeltételek

4 Böngésző támogatás

■ Támogatott az alábbi böngészőkben

Chrome, Firefox ,Opera, Edge, Safari

■ Fogja támogatni:

Microsoft Edge

4 Csak HTTPS-en megy

■ Fejlesztés közben a localhsotnál nem kell, de produkciós környezetben csak HTTPS felett működik

■ A service worker segítségével el lehetne térítni kapcsolatokat, át lehetne alakítani a tartalmat, tökéletes a man-in-the-middle támadásokra.

■ Ezért csak olyan oldalakhoz lehet service wokert regisztrálni amelyek https protokollon érhetőek el, így a telepített service worker az oldaltól származik

2019. 04. 16. Webfejlesztés keretrendszerek 31

(32)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Service worker és az Angular

4A fenti parancs az alábbi műveletekt végzi el

■ Hozzáadja az @angular/service-worker csomagot a projekthez

■ Engedélyezi a service worker build támogatást a CLI-ben

■ Importálja és regisztrálja a service workert az app modulban

■ Kiegészíti az index.html fájlt

– Hozzáad egy hivatkozást a manifest.json fájlra

■ Telepít egy ikont a Progressive Web App (PWA) támogatásra

■ Létrehozza az ngsw-config.json konfigurációs fájlt

2019. 04. 16. Webfejlesztés keretrendszerek 32

(33)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Service worker futtatása

4http-server segítségével indíthatjuk

■ Mivel az ng serve nem működik együtt a service workerrel ezért egy különló http szervert kell használni. (pl.: http-server -p 8080 -c-1 dist/<project-name>)

4Kezdeti betöltés

■ Amikor a szerver fut elérhetjük az

alkalamzást itt: http://localhost:8080/.

2019. 04. 16. Webfejlesztés keretrendszerek 33

(34)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Mit gyorsítótárazunk

4Az alkalmazás megjelenítéséhez szükséges összes fájl gyorsítótárazva van.

4A CLI által létrehozott minta ngsw-

config.json az alábbiakat konfigurálja:

■ index.html.

■ favicon.ico.

■ Build erőforrásokat (JS és CSS csomagok).

■ minden az assets mappában

■ A kpek és fontok az outputPath változóban (alapértlelmezésben ./dist/<project-name>/) vagy resourcesOutputPath.

2019. 04. 16. Webfejlesztés keretrendszerek 34

(35)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

ngsw-config.json

4appData

■ Adott alkalmazás verzióhoz tárolt adatok.

4assetGroups

■ Az alkalmazás verzióhoz tartozó erőforrások.

4dataGroups

■ Nem az alkalmazás verzióhoz igazodik.

■ Saját szabályok szerint gyorsítótáraz.

2019. 04. 16. Webfejlesztés keretrendszerek 35

(36)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

dataGroups

2019. 04. 16. Webfejlesztés keretrendszerek 36

(37)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Összefoglaló

4Angular HTTP

■ Szolgáltatás igénybevétele

■ JSON feldolgozása, ellenőrzése

■ Hiba kezelés

■ Hiba részletek

– retry()

■ Observables és operátorok

■ Nem JSON adat kérése

■ POST, DELETE, PUT

■ A kérés konfigurálása - kérés, válasz elkapása

■ Előrehaldás események

■ XSRF

■ Saját süti, fejléc

2019. 04. 16. Webfejlesztés keretrendszerek 37

(38)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

A következő előadás témája

4 Angular Biztonság

■ Legjobb gyakorlat

■ Cross-site scripting (XSS)

■ Biztonsági kontextus

■ DOM közvetlen használata és szeparáció

■ Tartalom biztonsági szabályok

■ Offline sablon fordító

■ Szerver oldali XSS védelem

■ Biztonságos értékek

■ HTTP sérülékenységek

■ Auditálás

2019. 04. 16. Webfejlesztés keretrendszerek 38

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Based on our simulation results, the proposed in- stantiation of the bootstrapping service can build a per- fect prefix table and leaf set at all nodes, in a logarith- mic number

• Insufficient cooperation and information exchange between the Bulgarian Customs Agency, the National Border Police Service/National Service for Combating

“Cloud manufacturing is a computing and service-oriented manufacturing model developed from existing advanced manufacturing models (e.g., application service providers,

The participants are pre-service teachers and in-service teachers involved in a special form of collaborative teaching at the Centre for English Teacher Training

(2010): Basic Factors that Affect General Academic Motivation Levels of Candidate Preschool

(2011) &#34;Service Quality in Higher Education, Case study: Measuring service quality of Islamic Azad University, Firoozkooh branch&#34;, Interdisciplinary Journal of

Ösztöndíjat nyert könyvtárosok: Csehily Adrienn (Községi Könyvtár, Salánk) • Karda Beáta (Kájoni János Megyei Könyvtár, Csíkszereda) • Kovács László Sándor

Table 10 provides the UNI Service Attributes, parameters, and values for the Ethernet Virtual Private Line (EVPL) using the E-Line Service Type.