Save
Upgrade to remove ads
Busy. Please wait.
Log in with Clever
or

show password
Forgot Password?

Don't have an account?  Sign up 
Sign up using Clever
or

Username is available taken
show password


Make sure to remember your password. If you forget it there is no way for StudyStack to send you a reset link. You would need to create a new account.
Your email address is only used to allow you to reset your password. See our Privacy Policy and Terms of Service.


Already a StudyStack user? Log In

Reset Password
Enter the associated with your account, and we'll email you a link to reset your password.
focusNode
Didn't know it?
click below
 
Knew it?
click below
Don't Know
Remaining cards (0)
Know
0:00
Embed Code - If you would like this activity on your web page, copy the script below and paste it into your web page.

  Normal Size     Small Size show me how

veebirakendused test

kui vigane let me know

TermDefinition
Internet layer (IPv4, IPv6) Tegeleb routinguga ehk andmete suunamisega võrkude vahel. IP header sisaldab source ja destination IP-aadressi.
TCP (Transport layer) Usaldusväärne, kuid aeglasem. Kasutatakse siis, kui andmed peavad kindlasti õigesti kohale jõudma (veebilehed, failid).
UDP (Transport layer) Kiire, kuid ebausaldusväärne. Kasutatakse siis, kui kiirus on tähtsam kui täiuslikkus (mängud, voogedastus).
Portide vahemikud 0–1023: well-known/privileged ports (vajavad admin-õigusi), 1024–49151: registered ports, 49152–65535: dynamic/ephemeral ports
HTTP vs HTTPS HTTP - reeglite kogum kliendi ja serveri suhtluseks. HTTPS - krüpteeritud HTTP (kasutades TLS/SSL). Vaikeportid: HTTP 80, HTTPS 443.
HTTP protokolli omadus Stateless protokoll (iga päring on eraldi). Suhtleb päringu-vastuse mustri kaudu: Klient saadab päringu → Server saadab vastuse.
Spring Boot Raamistik, mis lihtsustab Java Spring rakenduste loomist ja käivitamist, pakkudes automaatseid seadistusi ja valmis vaikekonfiguratsioone.
Auto-configuration Spring Boot seadistab vajalikud komponendid automaatselt vastavalt sellele, millised sõltuvused projektis olemas on.
Starter dependencies Eelkokkupandud sõltuvuste paketid, mis tagavad omavahel sobivad versioonid ja võimaldavad kiiresti alustada.
JAR (Java Archive) Tavaline Java rakenduse pakendamisviis. Sisaldab kõiki klassifaile ja ressursse. Saab otse käivitada käsuga java -jar.
WAR (Web Application Resource) Veebirakenduse pakett, mida kasutatakse rakenduse paigaldamiseks välisesse serverisse (nt Tomcat).
Maven Build automation tool, mis kasutab XML-faili (pom.xml). Haldab automaatselt projekti sõltuvusi.
Gradle Build automation tool, mis kasutab skriptifaili (build.gradle). Paindlikum ja kiirem kui Maven.
REST Arhitektuuri printsiipide kogum, mis ütleb, kuidas veebirakendused peaksid omavahel suhtlema. Idee on hoida API lihtne, ühtne ja skaleeruv.
REST põhiprintsiibid Client/Server, Stateless, Cache, Uniform Interface, Layered System, Code on Demand
REST Resource Suvaline andmeüksus, millele saad nime anda (näited: User, Book, Order). Resource'id on nimisõnad, mitte tegevused. Igal resource'il peab olema unikaalne URL.
REST URL reegel - nimisõnad Kasuta alati mitmuse kujul nimisõnu. /users → kasutajate kogu, /users/123 → üks konkreetne kasutaja
REST URL reegel - verbid URL-is ei tohi olla verbe. Vale: /getUsers, /createUser. Õige: GET /users, POST /users, DELETE /users/123
HTTP meetodid GET (Read, No body), POST (Create, Yes body), PUT (Update/Replace, Yes body), PATCH (Update/Modify, Yes body), DELETE (Delete, No body)
HTTP Response Codes 2xx 200 OK (Success), 201 Created (New resource created - POST), 204 No content (Often used with DELETE)
HTTP Response Codes 4xx 400 Bad Request (Client sent invalid data), 401 Unauthorized (Not logged in), 403 Forbidden (No rights to access), 404 Not Found (No resource on that url)
HTTP Response Codes 5xx 500 Internal Server Error (Bug in backend code)
URL komponendid Protocol (http/https), Host (domeeninimi), Port (80 HTTP, 443 HTTPS), Path (tee serveri sees), Query (algab ?, key=value paarid)
Path vs Query Path määrab mis resource tahetakse. Query määrab kuidas või milliselt sa seda küsid (tingimused/filtrid).
@RequestParam Abil saab lugeda query parameetrite URL-i lõpuosast (need, mis tulevad pärast ?). Query parameetrid ei ole osa path'ist.
JSON (JavaScript Object Notation) Formaati kasutatakse andmete saatmiseks programmide vahel. Objektid { }, massiivid [ ], key:value paarid. Lubatud tüübid: string, number, object, array, true, false, null
DTO (Data Transfer Object) Klass, mida kasutatakse andmete edastamiseks kliendi ja serveri vahel. Sisaldab ainult välju ja gettereid/settereid. DTO ei tohi sisaldada äriloogikat.
DTO kasutamise põhjused Kaitse (ei tagasta tervet entity objekti), Selge API struktuur, Hõlpsam valida millised väljad on nähtavad
@RequestBody Ütleb Springile, et loeks HTTP päringu body JSON-ist ja teisendaks selle automaatselt Java objektiks. Sisendiks kasutatakse tavaliselt DTO-d.
Docker Tööriist, mis paneb rakenduse koos kogu vajaliku keskkonnaga ühte isoleeritud konteinerisse, et see töötaks igal pool ühtemoodi.
Docker Image Mall, mille põhjal konteiner luuakse. Sisaldab rakenduse koodi, teeke ja keskkonna seadistusi.
Docker Container Image'i põhjal käivitatud töötav instants. On isoleeritud teistest konteineritest ja host-süsteemist.
Database Struktureeritud koht andmete salvestamiseks ja haldamiseks, kus rakendused saavad andmeid lugeda, lisada, muuta ja kustutada tõhusalt.
SQL vs ORM SQL - arendaja kirjutab ise päringuid (SELECT, INSERT, UPDATE, DELETE). ORM - arendaja töötab objektidega ja ORM genereerib SQL-i automaatselt.
Table Andmete hoidmise viis andmebaasis, mis näeb välja nagu Exceli tabel. Rida = üks kirje, Veerg = üks omadus, Primaarvõti identifitseerib iga rea unikaalselt.
JPA (Java Persistence API) "Reeglite raamat", mis määrab, kuidas Java objektid andmebaasi salvestatakse. See on liidesed ja reeglid, mitte päris kood.
Hibernate Populaarne ORM raamistik, mis kasutab JPA reegleid. Genereerib SQL-päringud, salvestab ja loeb Java objekte andmebaasist.
3-kihiline arhitektuur Controller → Service → Repository → andmebaas. Igal kihil on oma vastutus.
Controller kiht Võtab vastu HTTP päringud, loeb sisendi, teeb lihtsa valideerimise ja kutsub edasi Service'i. Ei sisalda äriloogikat.
Service kiht Asub rakenduse äriloogika. Siin otsustatakse, kuidas süsteem tegelikult käitub. Võib kasutada mitut repository't, kuid ei suhtle otse kliendiga.
Repository kiht Tegeleb ainult andmebaasiga suhtlemisega. Salvestab, loeb, muudab ja kustutab andmeid. Ei tea midagi HTTP-st ega äriloogikast.
Entity Klass, mis vastab andmebaasi tabelile. Iga entity väli vastab ühele tabeli veerule. Entity ei ole mõeldud otse API-sse saatmiseks.
Mapper Abikiht, mis teisendab andmeid erinevate klasside vahel (entity → DTO, DTO → entity). Parandab turvalisust ja hoiab arhitektuuri puhtana.
Lombok Java teek, mis genereerib automaatselt korduvat koodi nagu getterid, setterid, konstruktorid, equals, hashCode, toString.
@Data annotatsioon Genereerib korraga getterid, setterid, toString, equals, hashCode ning konstruktori vajalike väljadega.
Lomboki konstruktorid @NoArgsConstructor (ilma parameetriteta), @AllArgsConstructor (kõigi väljadega), @RequiredArgsConstructor (ainult final või @NonNull väljadele)
Liquibase Tööriist andmebaasi muudatuste haldamiseks. Jälgib tehtud muudatusi, rakendab neid automaatselt, hoiab kõik keskkonnad samas seisus.
Changeset Üks konkreetne andmebaasi muudatus Liquibase'is. Sisaldab id'd, autorit ja muudatusi.
Frontend Rakenduse osa, mida kasutaja näeb ja millega ta brauseris suhtleb. Hõlmab kasutajaliidest, stiile, animatsioone ja loogikat.
JavaScript Veebi peamine programmeerimiskeel, mida kasutatakse veebilehtede käitumise ja loogika lisamiseks.
HTML HyperText Markup Language - märgistuskeel veebilehe sisu struktureerimiseks.
CSS Cascading Style Sheets - stiilikeel HTML elementide välimuse määramiseks (värvid, fondid, paigutus, vahed, animatsioonid).
CORS Cross-Origin Resource Sharing - brauseri turvamehhanism, mis lubab või keelab kas üks veebileht tohib teise serveriga suhelda.
Proxy Vahepealne server või mehhanism, mis toimib vahendajana frontendi ja backendi vahel. Kasutatakse CORS-i probleemide vältimiseks.
Component Taaskasutatav kasutajaliidese osa, mis sisaldab HTML-i, CSS-i ja loogikat koos. Kasutatakse Angularis, Reactis ja Vue's.
Router Juhib navigeerimist veebirakenduses. Vahetab lehti või komponente vastavalt URL-ile.
Logger Tööriist rakenduse töö ajal sõnumite salvestamiseks. Aitab näha mis rakenduse sees toimub ja millal vead tekivad.
Logimise tasemed TRACE (väga detailne), DEBUG (vigade leidmine), INFO (normaalne töövoog), WARN (ootamatu, aga töötab), ERROR (tõsine probleem), FATAL (väga raske viga)
Exception Esindab probleeme, mis võivad tekkida programmi tavapärase töö käigus. Võib olla kontrollitav või mittekontrollitav.
RuntimeException Exception'i alamtüüp, mis tekib käivitamise ajal ja ei vaja kohustuslikku käsitlemist. Põhjustatud programmeerimisvigadest.
Error Väga tõsised probleemid, millest rakendus ei saa taastuda (OutOfMemoryError, StackOverflowError). Neid ei ole mõeldud püüdmiseks.
Checked vs Unchecked Exceptions Checked - peavad olema try/catch või throws (IOException, SQLException). Unchecked - ei pea deklareerima, RuntimeException alamklassid (NullPointerException).
try/catch/finally try - koodiblokk kus võib tekkida erand. catch - käsitleb erandi. finally - käivitatakse alati, kasutatakse ressursside sulgemiseks.
Custom Application Exception Arendaja loodud erandiklass, mis laiendab Exception või RuntimeException'i. Kasutatakse domeenispetsiifiliste vigade jaoks.
Global Exception Handler Mehhanism, mis püüab kinni KÕIK vead kogu rakenduses ühest kohast.
JPA EAGER vs LAZY EAGER - seotud andmed tuuakse kohe (ettearvamatu ja kallis). LAZY - seotud andmed tuuakse alles kasutamisel (parem kontroll).
JPA vaikimisi seaded @OneToOne EAGER, @ManyToOne EAGER, @OneToMany LAZY, @ManyToMany LAZY
N+1 päringu probleem Tekib kui laaditakse objektide nimekiri (1 päring) ja seejärel tehakse iga objekti seotud andmete jaoks eraldi päring (N päringut). Kokku 1+N päringut.
ACID Atomicity (kõik või mitte midagi), Consistency (kehtiv olek), Isolation (tehingud ei sega üksteist), Durability (andmed säilivad)
@Transactional Märgib meetodi nii, et kõik andmebaasi operatsioonid toimuvad ühe tehingu sees. Õnnestub → commit, Ebaõnnestub → rollback
Commit vs Rollback Commit - salvestab muudatused püsivalt. Rollback - tühistab tehingu jooksul tehtud muudatused.
Tehingu levik (Propagation) REQUIRED (vaikimisi - liitub või loob uue), REQUIRES_NEW (loob alati uue), NESTED (alatehingud), NOT_SUPPORTED (ilma tehinguta)
JPA entity olekud New/Transient (pole andmebaasis, JPA ei jälgi), Managed/Persistent (JPA jälgib, automaatne salvestamine), Detached (oli managed, aga ei ole enam), Removed (märgitud kustutamiseks)
Dirty Checking Hibernate tuvastab managed olekus entiteetide muudatused automaatselt ja salvestab need commit'i ajal. Pole vaja käsitsi save() kutsuda.
JPA Cascade tüübid ALL (kõik tegevused), PERSIST (lapsed salvestatakse), MERGE (lapsed uuendatakse), REMOVE (lapsed kustutatakse), REFRESH, DETACH
Transactional self-invocation Probleem tekib kui sama klassi meetod kutsub teist sama klassi meetodit. Ei minda proxy kaudu ja tehing ei käivitu.
Spring Scheduling Võimaldab käivitada meetodeid automaatselt kindla ajakava alusel. @EnableScheduling ja @Scheduled annotatsioonid.
Magic Method Names Spring Data oskab meetodi nime järgi ise andmebaasipäringu teha. findByTitle, findByAuthorAndPrice jne.
Specifications Viis ehitada andmebaasipäringuid tükkidest, mida saab kombineerida. Kasutatakse dünaamiliste filtrite jaoks. (root, query, cb) lambda.
Bean validation Kontrollida andmeid enne töötlemist. Kasutatakse DTO-de puhul. @NotBlank, @NotNull, @Size, @Pattern, @Email, @Min, @Max
OpenAPI Standard REST API-de kirjeldamiseks ja dokumenteerimiseks. Dokumentatsioon tekib automaatselt, API-d saab testida Swagger UI kaudu.
Spring Profiles Võimaldavad kasutada erinevaid seadistusi eri keskkondades (dev, test, prod). Hoiab saladused Gitist eemal.
Unit Test Testib ühte klassi eraldi, ei kasuta andmebaasi, väga kiire. Kontrollib äriloogika korrektsust.
Integration Test Kontrollib kuidas erinevad rakenduse osad koos töötavad. Käivitab kogu süsteemi, kasutab päris andmebaasi, aeglasem.
Mockito Testimisraamistik võltsobjektide loomiseks. @Mock, @Spy annotatsioonid. Given/When/Then struktuur.
Paroolide hashimine Parooli ei salvestata algsel kujul. Tehakse hash - ühesuunaline teisendus. Algset parooli ei saa hash'ist tagasi arvutada.
Password salting Paroolile lisatakse enne räsimist juhuslik väärtus Salt. Tagab et sama parooli puhul on hash'id erinevad.
Password pepper Lisasaladus Pepper, mida ei salvestata andmebaasi. Talletatud rakenduse konfiguratsioonis. Kui andmebaas lekib, ei saa ründaja paroole kontrollida.
BCrypt Paroolide räsialgoritm, teadlikult aeglane, sisaldab automaatselt salt'i. Teeb brute-force rünnakud väga aeglaseks.
Spring Security Springi raamistik autentimise ja autoriseerimisega. Kaitseb API endpoint'e, kontrollib kasutaja õigusi.
JWT (JSON Web Token) Olekuta, lühiajaline token juurdepääsu tõendamiseks. Koosneb: Header (algoritm), Payload (andmed), Signature (kontrollib terviklikkust).
Kaitstud endpoint'id API aadressid, kuhu pääsemiseks peab kasutaja olema autentitud ja omama kindlat rolli. Token saadetakse Authorization: Bearer päises.
Local Storage Brauseri salvestusruum JWT tokeni jaoks. JavaScript pääseb sellele ligi, seega XSS rünnaku korral ohtlik.
SonarQube Tööriist koodi automaatseks analüüsimiseks. Otsib vigu, turvaauke ja koodikvaliteedi probleeme.
SSH võtmed Krüptograafiline võtmepaar serveritesse turvaliseks sisselogimiseks ilma paroolita. Public key serveris, Private key arvutis.
Dockerfile vs docker-compose Dockerfile - kuidas ehitada üks image (retsept). docker-compose.yml - kuidas mitu konteinerit koos käivitada (orkestreerimine).
Docker Hub Veebipõhine koht Docker image'de hoidmiseks ja jagamiseks. Töötab sarnaselt GitHubile.
CI/CD Continuous Integration ja Continuous Deployment. Automatiseerib koodi ehitamise, testimise ja juurutamise.
CI (Continuous Integration) Iga kord kui arendaja lisab koodi, kontrollib süsteem selle automaatselt üle. Build, testid, kontroll.
CD (Continuous Deployment) Kui kood on CI kontrollid läbinud, pannakse automaatselt serverisse tööle. Kiire ja kindel väljastamine.
CI/CD etapid Build (kompileerimine), Test (testid), Package/Dockerize (JAR/image loomine), Deploy (paigaldamine), Verify (kiirtestid)
NGINX Serveriprogramm, mis võtab vastu HTTP päringuid ja otsustab kuhu need edasi saata. Reverse proxy.
Proxy vs Reverse Proxy Proxy kaitseb ja esindab klienti. Reverse proxy kaitseb ja esindab serverit.
Polling Klient küsib serverilt infot regulaarsete ajavahemike järel. Ebaefektiivne, palju tühje vastuseid.
Long polling Klient saadab päringu ja server hoiab ühendust avatuna kuni uued andmed tekivad. Parem kui tavaline polling.
WebSocket Loob kliendi ja serveri vahele püsiva kahesuunalise ühenduse. Mõlemad saavad igal ajal sõnumeid saata. Sobib reaalajas rakendustele.
Server-Sent Events (SSE) Klient hoiab serveriga ühenduse avatuna ja ainult server saadab sündmusi kliendile. Ühesuunaline suhtlus.
Filtreerimine URL-is Piirab tulemusi kindlate tingimustega. ?status=active&role=admin
Sortimine URL-is Määrab mis järjekorras tulemused tagastatakse. ?sort=-created_at
Otsing URL-is Vabateksti otsing. ?q=term
Bean Scopes Singleton (üks instants), Prototype (uus instants iga päringu korral), Request (üks HTTP päringu kohta), Session (üks sessiooni kohta)
Inversion of Control (IoC) Arendaja ei loo objekte ise, vaid raamistik teeb seda ja süstib sõltuvused automaatselt.
Dependency Injection Klass ei loo ise oma sõltuvusi, vaid need antakse talle väljastpoolt. Konstruktorisüstimine (parim), väljasüstimine, @Bean meetodid.
Preflight (OPTIONS) Brauseri tehtav OPTIONS-päring, kus küsitakse serverilt kas soovitud päring on lubatud. Vajalik POST/PUT/DELETE JSON-iga.
SQL Injection Pahatahtlik SQL lisatakse kasutaja sisendi kaudu päringusse. Lahendus: prepared statements või ORM.
XSS (Cross-Site Scripting) Pahatahtlik JavaScript süstitakse ja käivitatakse teiste kasutajate brauseris. Lahendus: väljundi escapemine, sisendi puhastamine, CSP päised.
IDOR Insecure Direct Object Reference - ründaja muudab URL-is ID-sid ja pääseb ligi andmetele mis talle ei kuulu. Lahendus: kontrolli kasutaja õigusi.
Mass Assignment Klient saab JSON-i kaudu muuta välju mida ta ei tohiks (rollid, saldo). Lahendus: kasuta DTO-sid ja mappimist.
Access Token Lühiajaline token (JWT), server ei salvesta, kasutatakse igal päringul, ei saa tagasi kutsuda (v.a blacklist).
Refresh Token Pikaajaline token, salvestatakse andmebaasi, kasutatakse uue access token'i saamiseks, saab tagasi kutsuda.
Session ID Serveripoolse sessiooni identifikaator. Salvestatud mällu/Redis'esse/andmebaasi. Server kontrollib seda igal päringul.
Cookies Väikesed andmetükid, saadetakse automaatselt iga päringuga. HttpOnly (kaitseb XSS-i eest), Secure (ainult HTTPS).
LocalStorage vs Cookies LocalStorage - brauseripoolne key-value ruum, JavaScript pääseb ligi, XSS ohtlik. Cookies - saadetakse automaatselt, HttpOnly flag turvalisem.
Bean'i loomine viisid 1) XML konfiguratsioon (vana), 2) Java konfiguratsioon (@Bean), 3) Spring annotatsioonid (@Component, @Service, @Repository, @Controller)
Created by: user-2015257
 

 



Voices

Use these flashcards to help memorize information. Look at the large card and try to recall what is on the other side. Then click the card to flip it. If you knew the answer, click the green Know box. Otherwise, click the red Don't know box.

When you've placed seven or more cards in the Don't know box, click "retry" to try those cards again.

If you've accidentally put the card in the wrong box, just click on the card to take it out of the box.

You can also use your keyboard to move the cards as follows:

If you are logged in to your account, this website will remember which cards you know and don't know so that they are in the same box the next time you log in.

When you need a break, try one of the other activities listed below the flashcards like Matching, Snowman, or Hungry Bug. Although it may feel like you're playing a game, your brain is still making more connections with the information to help you out.

To see how well you know the information, try the Quiz or Test activity.

Pass complete!
"Know" box contains:
Time elapsed:
Retries:
restart all cards