Code Monkey home page Code Monkey logo

ece_gk802-lab1's Introduction

Πρώτη Εργαστηριακή Άσκηση Προγραμματισμού Διαδικτύου (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.

ece_gk802-lab1's People

Contributors

sintoris avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.