Oct 16, 2006

Χρησιμοποιώντας τον HTTP Analyzer

Είναι αρκετά συνηθισμένο κατά τη διάρκεια της υλοποίησης μιας web εφαρμογής να θέλουμε να εξακριβώσουμε τις τιμές των δεδομένων που γίνονται POST ώστε να ελέγξουμε προβλήματα κωδικοποίησης, ενεργοποίησης Javascript, κτλ. Και ενώ μια παραδοσιακή προσέγγιση θα ήταν η χρήση διαγνωστικών μηνυμάτων ή debugger ώστε να εμφανιστούν οι τιμές των μεταβλητών που μας ενδιαφέρουν, τα πράγματα απλοποιούνται στο περιβάλλον του JDeveloper (από την έκδοση 9.0.3 και έπειτα) με την χρήση του εργαλείου HTTP Analyzer που επιτρέπει την πλήρη καταγραφή των HTTP και SOAP αιτήσεων που δέχεται μια εφαρμογή.
Η ενεργοποίησή του είναι εύκολη, από το μενού View-->HTTP Analyzer. Στην μπάρα που θα αναδυθεί πατήστε το πράσινο βέλος και αυτό είναι όλο! O HTTP Analyzer λειτουργεί με το να παρεμβάλλεται ανάμεσα στον πελάτη (client) που καταθέτει μια HTTP/SOAP αίτηση και τον τελικό Application Server, παίζοντας το ρόλο του proxy. Γι' αυτό το λόγο οι επιλογές που βρίσκονται στο μενού Tools-->Preferences-->HTTP Analyzer φανερώνουν πως αυτή η παρέμβαση γίνεται διαμέσου ενός αφιερωμένου port. Κρατήστε μια σημείωση για την επιλογή "Forward All Requests" που θα αναλυθεί αργότερα.

Από την πλευρά του πελάτη χρειάζεται να οριστεί στον browser πως ο proxy που θα χρησιμοποιηθεί θα έχει τις ρυθμίσεις του HTTP Analyzer ώστε όλες οι web αιτήσεις να φιλτράρονται πρώτα από αυτόν.

Τα αποτελέσματα που παράγει ο Analyzer παρουσιάζονται στην επόμενη εικόνα και καλύπτουν αναλυτικά τις επικεφαλίδες HTTP καθώς και το περιεχόμενο που στάλθηκε / ανακτήθηκε από τον Application Server. Σημαντική επίσης είναι η δυνατότητα εξαγωγής τους σε αρχείο κειμένου για περαιτέρω επεξεργασία.


Επιπλέον, αξίζει να αναφερθεί πως ο HTTP Analyzer μπορεί να χρησιμοποιηθεί, χωρίς καμία τροποποίηση, και για τον έλεγχο SOAP αιτήσεων. Η παρουσίαση του μηνύματος που αποστέλλεται από τον Web Service Client (που τρέχει εντός του JDeveloper) όπως επίσης και της απάντησης από το Web Service παρουσιάζονται στο ίδιο παράθυρο. Σε περίπτωση που θέλουμε να αλλάξουμε κάποιο πεδίο της αίτησης (πχ να ελέγξουμε την αντίδραση του Web Service σε περίπτωση που ένα πεδίο θα πάρει αρνητικές τιμές) , αρκεί να κάνουμε απευθείας edit το κείμενο που στέλνεται στον HTTP Analyzer και να πατήσουμε "Resend".

Συνοψίζοντας, ο HTTP Analyzer μπορεί να μας απαλλάξει από αρκετές ώρες debugging λειτουργώντας τρόπον τινά ως sniffer των SOAP και HTTP requests. Ενεργοποιώντας μάλιστα την επιλογή "Forward All Requests" δεν είναι απαραίτητο ούτε ο Application Server ούτε ο SOAP/HTTP client να εκτελούνται εντός του JDeveloper αλλά απεναντίας να είναι σε άλλες, τρίτες μηχανές που απλά θα δρομολογούν τις αιτήσεις τους διαμέσου του proxy port του HTTP Analyzer. Μια ιδιαίτερα χρήσιμη λειτουργία σε συμβούλους που καλούνται να κάνουν άμεσα ενδοσκόπιση σε μηνύματα που τροφοδοτούνται σε Application Servers ενός οργανισμού!

1 comment:

Anonymous said...

WOW I AM DEEPLY IMPRESSED FROM YOUR ENORMOUS KNOWLEDGE!