Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό — Ιανουάριος 2021¶
Η μεταγραφή προέρχεται από τα αρχεία web_telikh_lyseis.pdf, web_telikh_lyseis_part2.pdf και τη φωτογραφία 1.PNG.
web_telikh_lyseis.pdf¶
[Λείπει από τη φωτογραφία: ερωτήσεις 1–3· η πρώτη σελίδα του αρχείου ξεκινά από την ερώτηση 4]
Ερώτηση 4 (Σωστό / Λάθος — 1 βαθμός)¶
Η PHP διαθέτει μηχανισμό ελέγχου της ορθότητας των MySQL queries πριν αυτά σταλούν στη βάση δεδομένων για εκτέλεση. Επομένως, αν κάποιο SQL ερώτημα έχει λάθος σύνταξη, η PHP δε θα το αποστείλει για εκτέλεση στον MySQL server. - [ ] Σωστό - [ ] Λάθος
Ερώτηση 5 (Σωστό / Λάθος — 1 βαθμός)¶
Για να αναπτύξουμε τοπικά στον υπολογιστή μας web εφαρμογές υλοποιημένες σε PHP, το μόνο που χρειαζόμαστε είναι ένας source code editor όπως το Notepad++. - [ ] Σωστό - [ ] Λάθος
Ερώτηση 6 (Σωστό / Λάθος — 1 βαθμός)¶
Σαν δημιουργοί / διαχειριστές περιεχομένου σε κάποιο εξυπηρετητή πηγή, είναι προτιμότερο να μην ορίζουμε TTLs για τα ιστοαντικείμενα που φιλοξενούμε, καθώς αυτά ορίζονται αυτόματα από τους αντιπροσώπους που τα διατηρούν, ανάλογα και με τα στατιστικά πρόσβασης σε αυτά. - [ ] Σωστό - [ ] Λάθος
Ερώτηση 7 (Σωστό / Λάθος — 1 βαθμός)¶
Η συμπερίληψη ενός script στην ενότητα <head></head> της σελίδας ως: <script src="script.js"></script> έχει ως αποτέλεσμα ότι δεν εκτελείται το script μέχρι να φορτωθεί το DOM.
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 8 (Σωστό / Λάθος — 1 βαθμός)¶
[Λείπει από τη φωτογραφία: η εκφώνηση της ερώτησης 8· η φωτογραφία κόβεται πριν από το κείμενο της ερώτησης]
Ερώτηση 9 (Σωστό / Λάθος — 1 βαθμός)¶
[Λείπει από τη φωτογραφία: η εκφώνηση της ερώτησης 9 και οι γραμμές 1–3 του κώδικά της· φαίνονται μόνο οι γραμμές 4–6 του κώδικα]
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 10 (Σωστό / Λάθος — 1 βαθμός)¶
Η τεχνική της «διάφανης δυναμικής αντιγραφής» επιτρέπει στο διαχειριστή ενός δικτύου διανομής περιεχομένου να φιλοξενεί πολλαπλούς ιστότοπους, υπερβαίνοντας τα προβλήματα υπερ-δέσμευσης πόρων. - [ ] Σωστό - [ ] Λάθος
Ερώτηση 11 (Σωστό / Λάθος — 1 βαθμός)¶
Η τεχνική των μισθώσεων για την διαχείριση της συνέπειας σε ένα δίκτυο περιεχομένου, διασφαλίζει το σύστημα από τις καθυστερήσεις που προκύπτουν λόγω ύπαρξης μη-έγκυρων εγγραφών στις λίστες πελατών. - [ ] Σωστό - [ ] Λάθος
Ερώτηση 12 (Σωστό / Λάθος — 1 βαθμός)¶
Όταν εκτελείται ο javascript κώδικας document.write("<h1>Hello World!</h1>") ο χρήστης βλέπει στην οθόνη του browser να τυπώνεται το αλφαριθμητικό "Hello World!", μορφοποιημένο ως heading 1.
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 13 (Σωστό / Λάθος — 1 βαθμός)¶
Έστω ο παρακάτω JavaScript κώδικας. Θα τυπωθεί "hello, world"
const greeting = function() {
console.log('hello, world');
};
Ερώτηση 14 (Σωστό / Λάθος — 1 βαθμός)¶
Στην javascript, μια εντολή στην ουρά εργασιών (task queue) εκτελείται μόνο όταν η στοίβα κλήσης (call stack) είναι άδεια. - [ ] Σωστό - [ ] Λάθος
Ερώτηση 15 (Σωστό / Λάθος — 1 βαθμός)¶
Σε μία HTML φόρμα, η χρήση του <input type="password"> έχει ως αποτέλεσμα ο browser να κρυπτογραφεί την τιμή που εισάγει ο χρήστης στο πεδίο.
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 16 (Σωστό / Λάθος — 1 βαθμός)¶
Ο παρακάτω κώδικας σε ένα HTML αρχείο, θα εμφανίσει μία εικόνα που όταν την επιλέξουμε με πάτημα του ποντικιού θα μας οδηγήσει στο αρχείο mypage.html
<a href = "mypage.html">
<img src = "images/myimage.png" alt = "Test picture">
</a>
Ερώτηση 17 (Σωστό / Λάθος — 1 βαθμός)¶
Ο παρακάτω κώδικας σε ένα HTML αρχείο, θα εμφανίσει έναν σύνδεσμο (hyperlink) που όταν τον επιλέξουμε θα μας οδηγήσει στην αρχική σελίδα του Πανεπιστημίου Πατρών
<a href = "www.upatras.gr">Παν.Πατρών</a>
Ερώτηση 18 (Σωστό / Λάθος — 1 βαθμός)¶
Ο javascript κώδικας document.getElementById("demo").innerHTML = "Hello World!"; θα θέσει το περιεχόμενο του στοιχείου <p id="demo"> σε "Hello World!".
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 19 (Σωστό / Λάθος — 1 βαθμός)¶
Ο παρακάτω HTML κώδικας θα εμφανίσει ένα πίνακα στον οποίο όλα τα κελιά θα είναι ορθώς στοιχισμένα.
<table>
<tr>
<th colspan="2" rowspan="2">Header</th>
<td>Data</td>
</tr>
<tr>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
</table>
Ερώτηση 20 (Σωστό / Λάθος — 1 βαθμός)¶
Σε περιπτώσεις που ο διαχειριστής ενός ιστοτόπου επιθυμεί να διασφαλίσει κατά το δυνατό την εγκυρότητα του περιεχομένου που ανακτούν οι χρήστες, τότε είναι προτιμότερο να επιλέξει τη διανομή του περιεχομένου μέσω αντιπροσώπων (web proxies). - [ ] Σωστό - [ ] Λάθος
Σημείωση: η φωτογραφία περιέχει χειρόγραφες απαντήσεις φοιτητή.
1.PNG¶
Ερώτηση 5 (Σωστό / Λάθος — 1 βαθμός)
Ο παρακάτω JavaScript κώδικας θα τυπώσει "
This is dynamic
"var text = document.createTextNode('this is dynamic');
var p = document.createElement('p');
p.appendChild(text);
console.log(p);
- [ ] Σωστό
- [ ] Λάθος
web_telikh_lyseis_part2.pdf¶
Οι ερωτήσεις 6–8, 10–12 και 16 της πηγής αυτής διαφέρουν από τις ομώνυμες ερωτήσεις του web_telikh_lyseis.pdf. Η ερώτηση 5 (JavaScript createTextNode) είναι διπλότυπη της ερώτησης 5 του 1.PNG και η ερώτηση 17 είναι διπλότυπη της ερώτησης 17 του web_telikh_lyseis.pdf· δεν επαναλαμβάνονται εδώ.
Ερώτηση 6 (Σωστό / Λάθος — 1 βαθμός)¶
Θεωρείστε ότι γίνεται submit η φόρμα της εικόνας. Στο PHP αρχείο που στέλνονται τα δεδομένα της φόρμας, μπορούμε να έχουμε πρόσβαση στην τιμή του πεδίου username με το $username = $_POST['username'];
<form name="form1.php" method="post" action="form2.php">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="Login">
</form>
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 7 (Σωστό / Λάθος — 1 βαθμός)¶
Στην τεχνική Responsive Web Design δημιουργείται ξεχωριστή έκδοση του website για κινητές συσκευές.
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 8 (Σωστό / Λάθος — 1 βαθμός)¶
Ο php κώδικας της εικόνας, θα εκτελεστεί κανονικά, παρότι έχουμε ζητήσει να γίνει συνένωση μιας μεταβλητής τύπου int με μια τύπου string
<?php
$var1 = 2020;
$var2 [δυσανάγνωστο] "The current year is ";
$var3 = $var2.$var1;
echo $var3;
?>
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 10 (Σωστό / Λάθος — 1 βαθμός)¶
Κατά την ασφαλή επικοινωνία πελάτη-πηγής με το πρωτόκολλο HTTPS, κρυπτογραφούνται το path, searchpart, δεδομένα φορμών, cookies και headers, αλλά όχι το domain name.
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 11 (Σωστό / Λάθος — 1 βαθμός)¶
Για να ανακτήσουμε μια ιστοσελίδα που απαρτίζεται από πολλαπλά ιστοαντικείμενα, μπορούμε για κάθε ένα από αυτά να ανοίγουμε και να κλείνουμε τη σύνδεση προς την πηγή, ή να διατηρούμε τη σύνδεση ανοικτή. Η διαφορά μεταξύ των δύο τρόπων στην αντιλαμβανόμενη καθυστέρηση από το χρήστη είναι αμελητέα.
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 12 (Σωστό / Λάθος — 1 βαθμός)¶
Αν γράψουμε στη μπάρα διευθύνσεων του Google Chrome το URL που δείχνει η εικόνα, θα εκτελεστεί το PHP αρχείο test.php
[Σχήμα: μπάρα διευθύνσεων του Google Chrome με τη διεύθυνση
C:\wamp\www\test.php]
- [ ] Σωστό
- [ ] Λάθος
Ερώτηση 16 (Σωστό / Λάθος — 1 βαθμός)¶
Ο PHP κώδικας της εικόνας θα εκτελεστεί χωρίς να προκαλέσει σφάλμα, καθώς στην PHP οι θέσεις ενός πίνακα δεν είναι απαραίτητο ούτε να έχουν συνεχόμενη αρίθμηση, ούτε να είναι υποχρεωτικά ακέραιοι αριθμοί.
<?php
$students[0] [δυσανάγνωστο] "Vasilis";
$students['friend']="Andreas";
?>
- [ ] Σωστό
- [ ] Λάθος
Σημείωση: η φωτογραφία περιέχει χειρόγραφες απαντήσεις φοιτητή.
Επιπλέον πηγές χωρίς μεταγραφή εδώ (δεν υπάρχει αρχείο λύσεων για αυτή τη session· το αρχείο αυτό περιέχει μόνο επισημάνσεις φοιτητή):
web_telikh_lyseis_updated.pdf(διπλότυπη λήψη του web_telikh_lyseis.pdf)
Λύσεις (⚪ AI, μη επαληθευμένο)
Κατάσταση: ⚪ AI, μη επαληθευμένο Πηγή: λύσεις AI (antigravity-gemini, gemini-3.7-flash, sonnet), ανεξάρτητη επανάληψη και αντιπαραβολή· καμία δεν έχει ελεγχθεί από άνθρωπο
Προσοχή
Λύση από AI — ελέγξτε την· δεν έχει επαληθευτεί από άνθρωπο. Η ένδειξη «δύο λύσεις συμφωνούν» δεν σημαίνει ότι η απάντηση είναι σωστή.
AI λύσεις — 2021-01¶
Οι λύσεις γράφτηκαν από μοντέλα AI και δεν έχουν ελεγχθεί από άνθρωπο. Η αρίθμηση ακολουθεί το αρχείο θεμάτων.
Θέμα 4¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Η PHP στέλνει το query ως απλό string στον MySQL server· τον έλεγχο σύνταξης τον κάνει ο server, ο οποίος επιστρέφει σφάλμα. Λάθος.
Θέμα 5 (PDF)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Χρειάζεται και web server με διερμηνέα PHP (π.χ. WAMP/XAMPP ή ο ενσωματωμένος server της PHP), και συνήθως MySQL· ο editor δεν αρκεί. Λάθος.
Θέμα 5 (1.PNG, createTextNode)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: μέτρια
Το console.log(p) τυπώνει το αντικείμενο-στοιχείο (στην κονσόλα του browser εμφανίζεται ως <p>this is dynamic</p>), όχι ένα string· επιπλέον το κείμενο έχει μικρό «t», ενώ η εκφώνηση γράφει «This». Σε κάθε περίπτωση δεν τυπώνεται ακριβώς αυτό. Λάθος. (Η μεταγραφή του 1.PNG είναι αμφισβητούμενη, βλ. σημείωση του αρχείου θεμάτων.)
Θέμα 6 (PDF)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Το TTL ορίζεται από την πηγή (Expires / Cache-Control: max-age). Οι cache δεν το «ορίζουν αυτόματα»· αν λείπει, εφαρμόζουν ευριστικές εκτιμήσεις, με χειρότερη απόδοση/εγκυρότητα. Είναι προτιμότερο να ορίζουμε TTL. Λάθος.
Θέμα 6 (part2, φόρμα POST)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Η φόρμα έχει method="post", action="form2.php" και πεδίο name="username", άρα στο form2.php το $_POST['username'] δίνει την τιμή (το name της ίδιας της φόρμας δεν παίζει ρόλο). Σωστό.
Θέμα 7 (PDF)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Script χωρίς defer/async στο <head> σταματά τον parser και εκτελείται αμέσως, πριν χτιστεί το DOM. Η πρόταση λέει το αντίθετο. Λάθος.
Θέμα 7 (part2, Responsive Web Design)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Το RWD χρησιμοποιεί ένα μόνο site με ρευστή διάταξη και CSS media queries· δεν φτιάχνει ξεχωριστή έκδοση. Λάθος.
Θέμα 8 (PDF) και Θέμα 9 (PDF)¶
Αξιοπιστία: δεν λύθηκε
Δεν λύθηκε: λείπει η εκφώνηση του 8 και η εκφώνηση/γραμμές 1–3 του κώδικα του 9.
Θέμα 8 (part2, PHP int . string)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: μέτρια
Ο τελεστής . μετατρέπει αυτόματα το int σε string (loose typing)· το $var2.$var1 δίνει «The current year is 2020» χωρίς σφάλμα. Ο χαρακτήρας ανάθεσης στη γραμμή $var2 είναι δυσανάγνωστος· υποθέτω =. Σωστό.
Θέμα 10 (PDF, διάφανη δυναμική αντιγραφή)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: χαμηλή
Από μνήμη της θεωρίας CDN (δεν επαληθεύτηκε με το υλικό): η δυναμική αντιγραφή δημιουργεί/διαγράφει αντίγραφα ανάλογα με το φορτίο, ώστε πολλοί ιστότοποι να μοιράζονται τους πόρους χωρίς προκαθορισμένη δέσμευση για τον καθένα (αποφυγή υπερ-δέσμευσης). Πιθανώς Σωστό.
Θέμα 10 (part2, HTTPS)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Στο HTTPS κρυπτογραφούνται path, query, δεδομένα φόρμας, cookies, headers· το domain name φαίνεται (DNS/SNI). Σωστό.
Θέμα 11 (PDF, μισθώσεις)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: χαμηλή
Μισθώσεις (leases): ο server ειδοποιεί/ενημερώνει τον πελάτη μόνο όσο ισχύει η μίσθωση· μετά τη λήξη διαγράφει τον πελάτη από τη λίστα, άρα δεν μένουν μη-έγκυρες εγγραφές και ο server δεν δεσμεύει χώρο/χρόνο άσκοπα. Πιθανώς Σωστό (δεν επαληθεύτηκε).
Θέμα 11 (part2, μόνιμη vs μη-μόνιμη σύνδεση)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Κάθε νέα σύνδεση TCP κοστίζει τουλάχιστον ένα RTT (και slow start) ανά αντικείμενο, άρα η διαφορά δεν είναι αμελητέα. Λάθος.
Θέμα 12 (PDF, document.write)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Το document.write("<h1>Hello World!</h1>") γράφει HTML, οπότε εμφανίζεται «Hello World!» ως h1. Σωστό.
Θέμα 12 (part2, C:\wamp\www\test.php στη μπάρα)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Είναι τοπική διαδρομή (file://)· ο browser δεν περνά από web server, άρα η PHP δεν εκτελείται. Χρειάζεται http://localhost/test.php. Λάθος.
Θέμα 13¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Η συνάρτηση απλώς εκχωρείται στη σταθερά greeting· δεν καλείται ποτέ, άρα δεν τυπώνεται τίποτα. Λάθος.
Θέμα 14¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Ο event loop περνά εργασία από την ουρά στη στοίβα μόνο όταν η στοίβα είναι άδεια. Σωστό.
Θέμα 15¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Το type="password" μόνο κρύβει οπτικά τους χαρακτήρες· δεν κρυπτογραφεί. Λάθος.
Θέμα 16 (PDF, εικόνα με σύνδεσμο)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Το <img> μέσα σε <a href="mypage.html"> είναι κλικαμπλ εικόνα προς mypage.html. Σωστό.
Θέμα 16 (part2, πίνακας PHP)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: μέτρια
Οι πίνακες PHP είναι ordered maps: κλειδιά ακέραια ή string, όχι απαραίτητα συνεχόμενα· η ανάθεση σε μη δηλωμένη μεταβλητή δημιουργεί τον πίνακα χωρίς σφάλμα. Ο τελεστής στην πρώτη γραμμή είναι δυσανάγνωστος (υποθέτω =). Σωστό.
Θέμα 17¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Το href="www.upatras.gr" είναι σχετική διεύθυνση (χωρίς http(s)://)· ο browser το ερμηνεύει ως αρχείο www.upatras.gr του τρέχοντος φακέλου. Λάθος.
Θέμα 18¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Το getElementById("demo").innerHTML = "..." θέτει το περιεχόμενο του στοιχείου με id demo. Σωστό.
Θέμα 19¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: υψηλή
Γραμμή 1: στήλες 1–2 (th) και 3 (td). Γραμμή 2: οι στήλες 1–2 είναι πιασμένες από το rowspan, άρα τα δύο td πάνε στις στήλες 3 και 4. Γραμμή 3: 3 κελιά (στήλες 1–3). Άνισο πλήθος στηλών, άρα τα κελιά δεν στοιχίζονται ορθά. Λάθος.
Θέμα 20¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: μέτρια
Οι αντιπρόσωποι (web proxies) μπορεί να σερβίρουν παλιά αντίγραφα ως τη λήξη του TTL· για καλύτερο έλεγχο εγκυρότητας ο διαχειριστής προτιμά αντιγραφή (replication) υπό τον έλεγχό του. Λάθος.