Skip to content

sintoris/ece_gk802-lab1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Πρώτη Εργαστηριακή Άσκηση Προγραμματισμού Διαδικτύου (ECE_ΓΚ802)

Στη σημερινή πρώτη άσκηση θα γράψουμε προγράμματα-πελάτες (client) που χρησιμοποιούν το πρωτόκολλο HTTP για να επκοινωνήσουν με έναν εξυπηρετητή (server).

Η Python παρέχει διάφορες βιβλιοθήκες για το χειρισμό του πρωτοκόλλου HTTP, μία από τις οποίες είναι η ενσωματωμένη στη βασική διανομή urllib. Στη σημερινή άσκηση θα χρησιμοποιήσουμε τη βιβλιοθήκη requests της Python. Επίσης χρήσιμη θα είναι και η βασική γνώση regular expressions με βιβλιοθήκη re (δείτε και το Regular Expression HOWTO).

Η βιβλιοθήκη requests

Για να εγκαταστήσετε τη requests στους υπολογιστές του ΚΥΠΕΣ, τρέξτε:

pip3 install --user requests

Ανοίξτε και μελετήστε την τεκμηρίωση της βιβλιοθήκης requests. Η requests είναι μια βιβλιοθήκη για την υποβολή ερωτημάτων με το πρωτόκολλο HTTP.

Η βασική λογική της βιβλιοθήκης φαίνεται στο παρακάτω αρχικό παράδειγμα: (αρχείο ex0.py) που μας επιστρέφει τον κώδικα html της σελίδας http://python.org/:

import requests  # εισαγωγή της βιβλιοθήκης

def more(text):
    count = 0
    for line in text.split('\n'):
        print(line)
        count += 1
        if count % 30 == 0:
            reply = input('Show more (y/n)? ')
            if reply == 'n':
                break

url = 'http://python.org/'  # προσδιορισμός του url

with requests.get(url) as response:  # το αντικείμενο response
    html = response.text
    more(html)

Για να δούμε τις κεφαλίδες της σελίδας που λάβαμε, αρκεί να κοιτάξουμε στο λεξικό headers στο αντικείμενο response.

Άσκηση 1 (lab1.py):

Σε αρχείο python με όνομα lab1-1.py γράψτε κώδικα που:

  1. Ζητάει από τον χρήστη ένα URL,

  2. Πραγματοποιεί ένα αίτημα HTTP σε αυτό το URL,

  3. Τυπώνει τις κεφαλίδες (headers) της απόκρισης HTTP.

  4. Τροποποιήστε τον κώδικα ώστε να απαντάει για το URL που έδωσε ο χρήστης με τις εξής πληροφορίες:

    • Ποιο είναι το λογισμικό που χρησιμοποιεί ο εξυπηρετητής (ο web server) για να απαντήσει στο αίτημα;
    • Αν η σελίδα χρησιμοποιεί cookies, και αν ναι
    • Το όνομα κάθε cookie και για πόσο διάστημα θα είναι έγκυρο.

Για να δείτε ποιες είναι οι κεφαλίδες που δίνουν τις πληροφορίες που σας χρειάζονται στην τεκμηρίωση στο MDN Web Docs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages