Απαντήσεις επιστημόνων html. Περιγραφή του αντικειμένου Response. Ρωτήστε τον καθηγητή Markup

Δημιουργία απόκρισης από τους ελεγκτές

Αφού ο ελεγκτής ολοκληρώσει την επεξεργασία του αιτήματος, συνήθως χρειάζεται να δημιουργήσει μια απάντηση. Όταν δημιουργούμε έναν ελεγκτή χαμηλού επιπέδου εφαρμόζοντας απευθείας τη διεπαφή IController, πρέπει να αναλαμβάνουμε την ευθύνη για κάθε πτυχή της επεξεργασίας αιτημάτων, συμπεριλαμβανομένης της δημιουργίας απάντησης στον πελάτη.

Για παράδειγμα, για να στείλετε μια απάντηση HTML, θα χρειαστεί να δημιουργήσετε και να συνθέσετε τα δεδομένα HTML και στη συνέχεια να τα στείλετε στον πελάτη χρησιμοποιώντας τη μέθοδο Response.Write(). Ομοίως, για να ανακατευθύνετε το πρόγραμμα περιήγησης του χρήστη σε άλλη διεύθυνση URL, θα χρειαστεί να καλέσετε τη μέθοδο Response.Redirect() και να της μεταβιβάσετε την απαιτούμενη διεύθυνση URL. Και οι δύο προσεγγίσεις παρουσιάζονται στον παρακάτω κώδικα, ο οποίος δείχνει επεκτάσεις της κλάσης BasicController που δημιουργήσαμε σε προηγούμενο άρθρο υλοποιώντας τη διεπαφή IController:

Χρήση System.Web.Mvc; χρησιμοποιώντας System.Web.Routing; Χώρος ονομάτων ControllersAndActions.Controllers ( δημόσια κλάση BasicController: IController ( public void Execute(RequestContext requestContext) ( string controller = (string)requestContext.RouteData.Values["controller"]; string action = (string)request[ContextContext"Values. "]; if (action.ToLower() == "redirect") ( requestContext.HttpContext.Response.Redirect("/Derived/Index"); ) else ( requestContext.HttpContext.Response.Write(string.Format("Controller : (0), Μέθοδος δράσης: (1)", ελεγκτής, ενέργεια)); ) ) ) )

Η ίδια προσέγγιση μπορεί να εφαρμοστεί στην περίπτωση κληρονομιάς ενός ελεγκτή από την κλάση Controller. Η κλάση HttpResponseBase, η οποία επιστρέφεται όταν η ιδιότητα requestContext.HttpContext.Response διαβάζεται στη μέθοδο Execute(), είναι προσβάσιμη μέσω της ιδιότητας Controller.Response, όπως φαίνεται στο παρακάτω παράδειγμα, η οποία επεκτείνει την κλάση DerivedController, που δημιουργήθηκε επίσης νωρίτερα από κληρονομώντας από την κλάση Controller:

Χρήση του συστήματος. χρησιμοποιώντας System.Web; χρησιμοποιώντας System.Web.Mvc; namespace ControllersAndActions.Controllers ( δημόσια κλάση DerivedController: Controller ( public ActionResult Index() ( // ... ) public void ProduceOutput() ( if (Server.MachineName == "ProfessorWeb") Response.Redirect("/Basic/Index" ); else Response.Write("Controller: Παράγωγο, Μέθοδος Ενέργειας: ProduceOutput"); ) ) )

Η μέθοδος ProduceOutput() χρησιμοποιεί την τιμή της ιδιότητας Server.MachineName για να αποφασίσει ποια απάντηση θα σταλεί στον πελάτη. ("ProfessorWeb" είναι το όνομα της μηχανής ανάπτυξης μου.)

Αν και αυτή η προσέγγιση δημιουργίας απάντησης στον χρήστη λειτουργεί, υπάρχουν αρκετά προβλήματα με αυτήν:

    Οι κλάσεις ελεγκτών πρέπει να περιέχουν πληροφορίες δομής HTML ή URL, γεγονός που καθιστά δύσκολη την ανάγνωση και τη συντήρηση των κλάσεων.

    Ένας ελεγκτής που παράγει απόκριση απευθείας στην έξοδο είναι δύσκολο να δοκιμαστεί σε μονάδα. Θα χρειαστεί να δημιουργήσετε εικονικές υλοποιήσεις του αντικειμένου Response και στη συνέχεια να μπορείτε να επεξεργαστείτε την έξοδο από τον ελεγκτή για να προσδιορίσετε τι είναι. Αυτό μπορεί να σημαίνει, για παράδειγμα, την ανάγκη ανάλυσης της σήμανσης HTML σε λέξεις-κλειδιά, που είναι μια μακρά και κουραστική διαδικασία.

    Η επεξεργασία των μικρών λεπτομερειών κάθε απάντησης με αυτόν τον τρόπο είναι περίπλοκη και επιρρεπής σε σφάλματα. Σε ορισμένους προγραμματιστές αρέσει ο απόλυτος έλεγχος που παρέχεται από την κατασκευή ενός ελεγκτή χαμηλού επιπέδου, αλλά αυτό συνήθως περιπλέκεται πολύ γρήγορα.

Ευτυχώς, το MVC Framework διαθέτει ένα εύχρηστο εργαλείο που λύνει όλα αυτά τα προβλήματα - τα αποτελέσματα των ενεργειών. Οι ακόλουθες ενότητες εξηγούν την έννοια των αποτελεσμάτων ενεργειών και δείχνουν διάφορους τρόπους με τους οποίους μπορεί να χρησιμοποιηθεί για τη δημιουργία αποκρίσεων από ελεγκτές.

Αποτελέσματα ενεργειών

Τα αποτελέσματα ενεργειών στο MVC Framework χρησιμοποιούνται για τον διαχωρισμό των δηλώσεων πρόθεσης από την εκτέλεση της πρόθεσης (συγγνώμη για την ταυτολογία). Η ιδέα θα φαίνεται απλή μόλις το καταλάβετε, αλλά χρειάζεται λίγος χρόνος για να την κατανοήσετε λόγω κάποιας έμμεσης.

Αντί να ασχολούνται απευθείας με το αντικείμενο Response, οι μέθοδοι ενεργειών επιστρέφουν ένα αντικείμενο μιας κλάσης που προέρχεται από Αποτέλεσμα δράσης, το οποίο περιγράφει ποια θα πρέπει να είναι η απάντηση από τον ελεγκτή - για παράδειγμα, απόδοση μιας αναλυτικής προβολής ή ανακατεύθυνση σε άλλη διεύθυνση URL ή μέθοδο ενέργειας. Ωστόσο (αυτή είναι η ίδια η έμμεση) η απάντηση δεν παράγεται άμεσα. Αντίθετα, δημιουργείται ένα αντικείμενο ActionResult, το οποίο το MVC Framework επεξεργάζεται για να παράγει το αποτέλεσμα μετά την κλήση της μεθόδου δράσης.

Ένα σύστημα αποτελεσμάτων ενεργειών είναι ένα παράδειγμα του μοτίβου σχεδίασης εντολών. Αυτό το μοτίβο αντιπροσωπεύει σενάρια στα οποία αποθηκεύετε και μεταβιβάζετε αντικείμενα που περιγράφουν τις λειτουργίες που εκτελούνται.

Όταν το MVC Framework λαμβάνει ένα αντικείμενο ActionResult από μια μέθοδο ενέργειας, καλεί Μέθοδος ExecuteResult()., που ορίζεται στην κλάση αυτού του αντικειμένου. Στη συνέχεια, η υλοποίηση των αποτελεσμάτων ενέργειας λειτουργεί στο αντικείμενο Response, δημιουργώντας έξοδο που ταιριάζει με την πρόθεσή σας. Για να το δείξουμε στην πράξη, ας δημιουργήσουμε έναν φάκελο Infrastructure και ας προσθέσουμε ένα νέο αρχείο κλάσης σε αυτόν που ονομάζεται CustomRedirectResult.cs με μια προσαρμοσμένη υλοποίηση ActionResult που φαίνεται στο παρακάτω παράδειγμα:

Χρήση System.Web.Mvc; ControlersAndActionalsAndactions.infrastructure (Δημόσια τάξη CustomRedirectresult: ActionResult (δημόσια URL String (get; set;) δημόσια override void executeResult (controlercontext context) (fullUrl); ) ) )

Αυτή η κλάση βασίζεται στον τρόπο που λειτουργεί η κλάση System.Web.Mvc.RedirectResult. Ένα από τα πλεονεκτήματα ανοιχτή πηγήΤο MVC Framework έχει να κάνει με τη δυνατότητα να εξερευνήσετε τις εσωτερικές λειτουργίες του οτιδήποτε. Η κλάση CustomRedirectResult είναι πολύ πιο απλή από το αντίστοιχο MVC, αλλά είναι επαρκής για τους σκοπούς αυτού του άρθρου.

Κατά τη δημιουργία της κλάσης RedirectResult, μεταβιβάζουμε τη διεύθυνση URL στην οποία πρέπει να ανακατευθυνθεί ο χρήστης. Η μέθοδος ExecuteResult(), η οποία θα εκτελεστεί από το MVC Framework όταν ολοκληρωθεί η μέθοδος ενέργειας, λαμβάνει το αντικείμενο Response για το αίτημα μέσω του παρεχόμενου αντικειμένου ControllerContext του Framework και καλεί είτε τη μέθοδο RedirectPermanent() είτε τη μέθοδο Redirect() (αυτό είναι τι ακριβώς έγινε μέσα στην υλοποίηση χαμηλού επιπέδου του IController στο παράδειγμα νωρίτερα στο άρθρο).

Η χρήση της κλάσης CustomRedirectResult απεικονίζεται στο παρακάτω παράδειγμα, το οποίο δείχνει τις αλλαγές που έγιναν στον ελεγκτή Παράγωγο:

// ... χρησιμοποιώντας ControllersAndActions.Infrastructure; namespace ControllersAndActions.Controllers ( δημόσια κλάση DerivedController: Controller ( public ActionResult Index() ( // ... ) public ActionResult ProduceOutput() ( if (Server.MachineName == "MyMachineName") επιστρέφει νέο CustomRedirectResult "/Ba Url Ευρετήριο" ); else ( Response.Write("Controller: Παράγωγο, Μέθοδος ενέργειας: ProduceOutput"); return null; ) ) ) )

Σημειώστε ότι αναγκαστήκαμε να αλλάξουμε το αποτέλεσμα της μεθόδου ενέργειας για να επιστρέψουμε το ActionResult. Επιστρέφουμε null εάν δεν θέλουμε το MVC Framework να κάνει τίποτα όταν εκτελείται η μέθοδος ενεργειών μας, κάτι που κάναμε αν δεν επιστρεφόταν η παρουσία CustomRedirectResult.

Ελεγκτές και ενέργειες δοκιμής μονάδων

Πολλά μέρη του πλαισίου MVC έχουν σχεδιαστεί για να διευκολύνουν τη δοκιμή της μονάδας και αυτό ισχύει ιδιαίτερα για ενέργειες και ελεγκτές. Υπάρχουν διάφοροι λόγοι για αυτήν την υποστήριξη:

    Μπορείτε να δοκιμάσετε ενέργειες και ελεγκτές εκτός του διακομιστή web. Τα αντικείμενα περιβάλλοντος είναι προσβάσιμα μέσω των βασικών τους κλάσεων (όπως το HttpRequestBase), το οποίο είναι εύκολο να χλευαστεί.

    Για να ελέγξετε τα αποτελέσματα μιας μεθόδου ενέργειας, δεν χρειάζεται να αναλύσετε τη σήμανση HTML. Για να βεβαιωθείτε ότι λαμβάνετε τα αναμενόμενα αποτελέσματα, μπορείτε να επιθεωρήσετε το επιστρεφόμενο αντικείμενο ActionResult.

    Δεν απαιτείται εξομοίωση αιτημάτων πελατών. Το σύστημα δέσμευσης μοντέλων του MVC Framework σάς επιτρέπει να γράφετε μεθόδους ενεργειών που λαμβάνουν δεδομένα στις παραμέτρους τους. Για να δοκιμάσετε μια μέθοδο ενεργειών, απλώς την καλείτε απευθείας και παρέχετε τις κατάλληλες τιμές παραμέτρων.

Μελλοντικά άρθρα σχετικά με τη δημιουργία δεδομένων από ελεγκτές θα σας δείξουν πώς να δημιουργήσετε δοκιμές μονάδων για ΔΙΑΦΟΡΕΤΙΚΟΙ ΤΥΠΟΙαποτελέσματα των ενεργειών.

Μην ξεχνάτε ότι η δοκιμή μονάδας είναι μόνο μέρος της εικόνας. Η σύνθετη συμπεριφορά σε μια εφαρμογή εμφανίζεται όταν οι μέθοδοι ενεργειών καλούνται διαδοχικά. Η δοκιμή μονάδας λειτουργεί καλύτερα όταν συνδυάζεται με άλλες προσεγγίσεις δοκιμών.

Τώρα που γνωρίζετε πώς λειτουργεί το ειδικό αποτέλεσμα μιας ενέργειας ανακατεύθυνσης, μπορείτε να μεταβείτε στο αντίστοιχο που προσφέρει το πλαίσιο MVC, το οποίο είναι πιο ισχυρό και έχει ελεγχθεί διεξοδικά από τη Microsoft. Απαιτείται αλλαγήΟ παράγωγος ελεγκτής δίνεται παρακάτω:

// ... public ActionResult ProduceOutput() ( επιστροφή νέου RedirectResult("/Basic/Index"); ) // ...

Η δήλωση υπό όρους έχει αφαιρεθεί από τη μέθοδο ενεργειών, πράγμα που σημαίνει ότι μετά την εκκίνηση της εφαρμογής και την πλοήγηση σε μια διεύθυνση URL όπως /Derived/ProduceOutput, το πρόγραμμα περιήγησης θα ανακατευθυνθεί σε μια διεύθυνση URL όπως /Βασικό/Ευρετήριο. Για να απλοποιηθεί ο κώδικας της μεθόδου ενέργειας, η κλάση Controller περιλαμβάνει μεθόδους ευκολίας για δημιουργία διάφοροι τύποιΑντικείμενα ActionResult. Έτσι, για παράδειγμα, μπορούμε να επιτύχουμε το ίδιο αποτέλεσμα όπως στο παραπάνω παράδειγμα επιστρέφοντας το αποτέλεσμα της μεθόδου Redirect():

// ... public ActionResult ProduceOutput() ( return Redirect("/Basic/Index"); ) // ...

Δεν υπάρχει τίποτα ιδιαίτερα περίπλοκο στο σύστημα αποτελεσμάτων ενεργειών, αλλά τελικά βοηθά στην παραγωγή απλούστερου, καθαρότερου, πιο συνεπούς κώδικα που είναι εύκολο να διαβαστεί και να δοκιμάζεται μονάδα. Για παράδειγμα, στην περίπτωση ανακατεύθυνσης, μπορείτε απλώς να ελέγξετε ότι η μέθοδος ενέργειας επιστρέφει μια παρουσία RedirectResult της οποίας η ιδιότητα Url περιέχει τον αναμενόμενο στόχο.

Το MVC Framework ορίζει πολλούς ενσωματωμένους τύπους αποτελεσμάτων ενεργειών, οι οποίοι περιγράφονται στον παρακάτω πίνακα:

Ενσωματωμένοι τύποι ActionResult
Τύπος Περιγραφή Βοηθητικές Μέθοδοι της Τάξης Ελεγκτών
Προβολή Αποτελεσμάτων

Αποδίδει το καθορισμένο ή τυπικό πρότυπο προβολής

Θέα()
Αποτέλεσμα Μερικής Προβολής

Αποδίδει το καθορισμένο ή τυπικό πρότυπο μερικής προβολής

PartialView()
RedirectToRouteResult

Εκδίδει μια ανακατεύθυνση HTTP 301 ή 302 σε μια μέθοδο ενέργειας ή καθορισμένη καταχώρηση διαδρομής, δημιουργώντας μια διεύθυνση URL σύμφωνα με τη διαμόρφωση δρομολόγησης

RedirectToAction()
RedirectToActionPermanent()
RedirectToRoute()
RedirectToRoutePermanent()
RedirectResult

Εκδίδει μια ανακατεύθυνση HTTP 301 ή 302 στη δεδομένη διεύθυνση URL

Διευθύνω πάλιν()
RedirectPermanent()
Περιεχόμενο Αποτέλεσμα

Επιστρέφει μη μορφοποιημένα δεδομένα κειμένου στο πρόγραμμα περιήγησης, ορίζοντας επιπλέον την κεφαλίδα τύπου περιεχομένου

Περιεχόμενο()
Αποτέλεσμα αρχείου

Μεταφέρει δυαδικά δεδομένα (όπως ένα αρχείο στο δίσκο ή μια συστοιχία byte στη μνήμη) απευθείας στο πρόγραμμα περιήγησης

Αρχείο()
JsonResult

Σειροποιεί ένα αντικείμενο .NET σε JSON και το στέλνει ως απόκριση. Οι απαντήσεις αυτού του τύπου δημιουργούνται συχνότερα όταν χρησιμοποιούνται εργαλεία Web API και AJAX

Json()
JavaScriptResult

Στέλνει ένα απόσπασμα από το πρωτότυπο Κώδικας JavaScript, το οποίο πρέπει να εκτελεστεί από το πρόγραμμα περιήγησης

JavaScript()
HttpUnauthorizedResult

Ορίζει τον κωδικό κατάστασης απόκρισης HTTP σε 401 (που σημαίνει "μη εξουσιοδοτημένο"), το οποίο κάνει τον μηχανισμό ελέγχου ταυτότητας που βρίσκεται στη θέση του (έλεγχος ταυτότητας φόρμας ή έλεγχος ταυτότητας Windows) να ζητά από τον επισκέπτη να συνδεθεί

Οχι
HttpNotFoundResult

Επιστρέφει τον κωδικό σφάλματος HTTP 404 - Δεν βρέθηκε(δεν βρέθηκε)

HttpNotFound()
HttpStatusCodeResult

Επιστρέφει τον καθορισμένο κωδικό HTTP

Οχι
EmptyResult

Να μην κάνεις τίποτα

Οχι

Όλοι αυτοί οι τύποι προέρχονται από την κλάση ActionResult και πολλοί από αυτούς έχουν βολικό βοηθητικές μεθόδουςστην κατηγορία Controller. Θα δείξουμε τη χρήση αυτών των τύπων αποτελεσμάτων σε επόμενα άρθρα.

Αυτό το άρθρο παρέχει μια περίληψη των απαντήσεων που μπορεί να λάβει ένας οργανισμός ή έργο για τη διαχείριση ενός κινδύνου. Ο κίνδυνος μπορεί να οριστεί ως η αβεβαιότητα του αποτελέσματος είτε θετικό (μια ευκαιρία) είτε αρνητικό (μια απειλή). Η διαχείριση του κινδύνου είναι κρίσιμη για την επιτυχία του έργου και είναι καθήκον της διαχείρισης κινδύνου να διαχειριστεί την έκθεση ενός έργου στον κίνδυνο ().

Η απόκριση(ες) σε έναν δεδομένο κίνδυνο πρέπει να αντικατοπτρίζει τον τύπο κινδύνου, την εκτίμηση κινδύνου (πιθανότητα, αντίκτυπο, κρισιμότητα) και τη στάση του οργανισμού απέναντι στον κίνδυνο. Υπάρχει ένας αριθμός πιθανών απαντήσεων σε κινδύνους και, καθώς οι κίνδυνοι μπορεί να είναι απειλές ή ευκαιρίες, αυτές περιλαμβάνουν απαντήσεις που είναι κατάλληλες για πιθανές ευκαιρίες. Οι απαντήσεις συνοψίζονται στον παρακάτω πίνακα.

Πίνακας απαντήσεων κινδύνου

Απόκριση κινδύνου Περιγραφή/παράδειγμα

Κατάλληλο για…. τύποι κινδύνου (αυτές είναι προτάσεις και όχι εξαντλητικές)

Απειλές
Αποφύγει

Ο κίνδυνος αποφεύγεται με την αλλαγή του έργου με κάποιο τρόπο για να παρακαμφθεί ο κίνδυνος.

Μερικοί πολιτικοί κίνδυνοι π.χ. αρνητική κοινή γνώμη Ορισμένοι κίνδυνοι τεχνικών/λειτουργικών/υποδομών π.χ. προβλήματα συντήρησης. Νομικοί και ρυθμιστικοί κίνδυνοι π.χ. ρυθμιστικούς ελέγχους, απαιτήσεις αδειοδότησης.

ΜΕΤΑΦΟΡΑ

Μερικοί στρατηγικοί/εμπορικοί κίνδυνοι π.χ. κατά της κλοπής, της αφερεγγυότητας μπορεί να ασφαλιστεί. Δείτε τους επιχειρηματικούς κινδύνους για περισσότερα παραδείγματα.

Περιορίζω

Λαμβάνονται μέτρα για να μειωθεί είτε η πιθανότητα εμφάνισης του κινδύνου είτε ο αντίκτυπος που θα έχει.

Η πιο συχνά χρησιμοποιούμενη απάντηση στον κίνδυνο.

Ευρέως εφαρμόσιμο - Τεχνικά/Λειτουργικά/Υποδομές π.χ. αμέλεια, αποτυχία απόδοσης, «ερπυσμός» εμβέλειας, ασαφείς προσδοκίες.

Οργανωτικοί/διευθυντικοί/ανθρώπινοι παράγοντες π.χ. συγκρούσεις προσωπικότητας, κακή ηγεσία και κακή επιλογή προσωπικού.

Ορισμένοι πολιτικοί, νομικοί και ρυθμιστικοί κίνδυνοι και οικονομικοί/οικονομικοί κίνδυνοι μπορεί να χρειαστεί να γίνουν αποδεκτοί με ένα ενσωματωμένο π.χ. πόλεμος και αταξία, διακύμανση των ισοτιμιών.

Ενδεχόμενο Εδώ τίθεται ένα σχέδιο για να ανταποκριθεί εάν ο κίνδυνος πραγματοποιηθεί.

Οικονομική/χρηματοοικονομική/αγοραία
Πολιτικός
Νομική και ρυθμιστική

Αναμφισβήτητα όλοι οι κίνδυνοι μπορούν και πρέπει να έχουν ένα σχέδιο έκτακτης ανάγκης σε εφαρμογή.

Ευκαιρίες
Μερίδιο Μοιράζεται μια ευκαιρία με έναν συνεργάτη ή προμηθευτή για μεγιστοποίηση των οφελών μέσω της χρήσης κοινών πόρων/τεχνολογίας κ.λπ. Τεχνικά/επιχειρησιακά/υποδομές π.χ. νέα τεχνολογία, βελτιωμένα σχέδια.
Εκμεταλλεύομαι Ένα έργο θα μπορούσε να προσαρμοστεί για να επωφεληθεί από μια αλλαγή στην τεχνολογία ή μια νέα αγορά. Οικονομικό/χρηματοοικονομικό/αγοραίο π.χ. νέες και αναδυόμενες αγορές, θετικές αλλαγές στις συναλλαγματικές ισοτιμίες ή στα επιτόκια.
Ενισχύω Λαμβάνονται μέτρα για να αυξηθεί η πιθανότητα εμφάνισης της ευκαιρίας ή ο θετικός αντίκτυπος που θα μπορούσε να έχει. Στρατηγικές/εμπορικές ευκαιρίες όπως νέες συνεργασίες, νέες επενδύσεις κεφαλαίου, νέοι φορείς προώθησης.
Απορρίπτω Εδώ δεν γίνεται καμία ενέργεια και η ευκαιρία να κερδίσετε από την ευκαιρία απορρίπτεται. μπορεί να τεθεί σε εφαρμογή εάν παρουσιαστεί η ευκαιρία. Πολιτικά ή περιβαλλοντικά π.χ. νέες συγκοινωνιακές συνδέσεις, αλλαγή κυβέρνησης που φέρνει θετικές αλλαγές στην πολιτική/ευκαιρίες για λόμπι κ.λπ.

Σχέδια έκτακτης ανάγκηςθα πρέπει να προσδιορίσει τις ενέργειες που θα αναληφθούν σε περίπτωση κινδύνου. Οι ενδεχόμενες ενέργειες θα έχουν συχνά ένα σχετικό κόστος και θα πρέπει να διατεθεί ένας προϋπολογισμός στην επιχειρηματική υπόθεση για την κάλυψη αυτού.

Οι κορυφαίοι 50 επιχειρηματικοί κίνδυνοι και πώς να τους διαχειριστείτε!

20 Κοινοί κίνδυνοι έργου - παράδειγμα μητρώου κινδύνου

Λίστα ελέγχου 30 κατασκευαστικών κινδύνων

Αντιδράσεις κινδύνου - παραπομπές

Office of Government Commerce (2002), Managing Successful Projects with PRINCE2, Λονδίνο: TSO.

The Projects Group PLC, 2006, Επισκόπηση Διαχείρισης Κινδύνων, Sutton: The Projects Group plc.

Το περιγραφόμενο αντικείμενο είναι πολύ χρήσιμο και ισχυρό εργαλείο. Αυτό το αντικείμενο έχει πολλές μεθόδους, η περιγραφή τους δίνεται παρακάτω:

Συλλογές:

Μέθοδοι:

Ιδιότητες:

Απάντηση.Συλλογή cookies

Η συλλογή Cookies ορίζει τιμές για τα cookies. Εάν τα καθορισμένα cookies δεν υπάρχουν, τα δημιουργεί. Εάν το cookie υπάρχει, παίρνει μια νέα τιμή και καταστρέφει την παλιά.

Απάντηση.Cookies(cookie) [(κλειδί) | . ιδιότητες ] = τιμή

Επιλογές:

  • κουλουράκι- Όνομα cookie
  • κλειδί- Προαιρετική παράμετρος. Εάν έχει καθοριστεί, τότε το cookie είναι ένας κατάλογος (ένθετος) και το κλειδί είναι ένα σύνολο τιμών.
  • γνωρίσματα- Καθορισμένες πληροφορίες σχετικά με τα ίδια τα cookies. Αυτή η παράμετρος μπορεί να είναι μία από τις ακόλουθες:
  • έννοια- Υποδεικνύει την τιμή που θα εκχωρηθεί αυτό το κλειδίή χαρακτηριστικό.
ΟνομαΠεριγραφή
ΤομέαΜόνο ηχογράφηση. Εάν ορίζεται, τα cookies αποστέλλονται μόνο κατόπιν αιτήματος από αυτόν τον τομέα.
ΛήγειΜόνο ηχογράφηση. Η ημερομηνία λήξης του cookie. Αυτή η ημερομηνία πρέπει να οριστεί προκειμένου τα cookies να εγγράφονται στον πελάτη HDDμετά το τέλος της συνεδρίας. Εάν αυτό το χαρακτηριστικό δεν έχει οριστεί, τότε η ημερομηνία λήξης του cookie θεωρείται ότι είναι η τρέχουσα ημερομηνία. Τα cookies θα λήξουν αμέσως μετά το τέλος της συνεδρίας.
HasKeyΜόνο διάβασμα. Υποδεικνύει εάν το cookie περιέχει το δεδομένο κλειδί.
ΜονοπάτιΜόνο ηχογράφηση. Εάν ορίζεται, τα cookies αποστέλλονται μόνο κατόπιν αιτήματος από αυτήν τη διαδρομή. Εάν η παράμετρος δεν έχει οριστεί, χρησιμοποιείται η διαδρομή προς την εφαρμογή.
ΑσφαλήςΜόνο ηχογράφηση. Υποδεικνύει εάν τα cookies θα προστατεύονται ή όχι.

Σχόλιο:

Εάν το cookie κλειδιού έχει δημιουργηθεί όπως φαίνεται στο παρακάτω σενάριο,

<% Response.Cookies("mycookie")("type1") = "сахар" Response.Cookies("mycookie")("type2") = "печенье" %>

τότε θα σταλεί η ακόλουθη κεφαλίδα:

Set-Cookie:MYCOOKIE=TYPE1=ζάχαρη&TYPE2=cookies

Εάν εκχωρήσετε μια τιμή στο mycookie χωρίς να χρησιμοποιήσετε κλειδιά, τότε αυτή η ενέργεια θα καταστρέψει τα κλειδιά τύπου1 και τύπου2. Π.χ:<% Response.Cookies("myCookie") = "шоколадный зефир" %>

Στο προηγούμενο παράδειγμα, τα κλειδιά type1 και type2 θα καταστραφούν και οι τιμές τους θα χαθούν. Το Mycookie θα περιέχει τώρα την αξία marshmallow σοκολάτας.

Μπορείτε επίσης να ελέγξετε την ύπαρξη συγκεκριμένου κλειδιού με τον ακόλουθο τρόπο:

<% = Response.Cookies("myCookie").HasKeys %>

Εάν εμφανίζεται η ένδειξη TRUE, τότε υπάρχει τέτοιο κλειδί, ενώ εάν FALSE, δεν υπάρχει.

Απόκριση. Μέθοδος εγγραφής

Response.Write variable_or_value

Επιλογές:

  • μεταβλητή_ή_τιμή- Δεδομένα που θα εμφανίζονται στην οθόνη του προγράμματος περιήγησης μέσω HTML. Αυτή η παράμετρος μπορεί να είναι οποιουδήποτε τύπου που υποστηρίζεται από τη VisualBasic Scripting Edition. Δηλαδή, τα δεδομένα μπορεί να είναι των εξής τύπων: ημερομηνία, συμβολοσειρά, χαρακτήρας, αριθμητικές τιμές. Η τιμή αυτής της παραμέτρου δεν μπορεί να περιέχει τον συνδυασμό %>. Αντίθετα, μπορείτε να χρησιμοποιήσετε τον ισοδύναμο συνδυασμό %\>. Ο διακομιστής web θα μετατρέψει αυτήν την ακολουθία στην απαιτούμενη κατά την εκτέλεση του σεναρίου.

Το ακόλουθο παράδειγμα δείχνει πώς λειτουργεί η μέθοδος Response.write για την έξοδο ενός μηνύματος στον πελάτη.

Θα σου πω μόνο:<%Response.write "Привет всем!!!"%>Και το όνομά σου<%Response.write(Request.Form("name"))%>

Το παρακάτω παράδειγμα προσθέτει μια ετικέτα HTML σε μια ιστοσελίδα. Επειδή αυτή η μέθοδος δεν μπορεί να περιέχει τον συνδυασμό %>, χρησιμοποιούμε την ακολουθία %\>. Λοιπόν ένα παράδειγμα σεναρίου:

<% Response.write "

" %>

Η έξοδος θα είναι η γραμμή:

Μέθοδος Response.Redirect

Response.Redirect URL (URL - Uniform Resource Locator)

Επιλογές:

  • URL- Η παράμετρος είναι μια καθολική περιγραφή πόρων. Δείχνει πότε πρέπει να ανακατευθυνθεί το πρόγραμμα περιήγησης.

Σχόλιο:

Οποιοδήποτε περιστατικό αυτή τη μέθοδομεταξύ ετικετών Καιη ιστοσελίδα θα αγνοηθεί. Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί μόνο στην κεφαλή μιας σελίδας HTML. Αυτή η μέθοδος θα περάσει μια κεφαλίδα στο πρόγραμμα περιήγησης εάν λείπει η παράμετρος URL αυτού του αντικειμένου στην ακόλουθη μορφή:

HTTP/1.0 302 Διεύθυνση URL τοποθεσίας που μετακινήθηκε αντικείμενο

Μέθοδος απόκρισης.Τερματισμός

Απάντηση.Τέλος

Σχόλιο:

Εάν η ιδιότητα Response.Buffer ορίστηκε σε TRUE, τότε η κλήση της μεθόδου Response.End θα διαγράψει την προσωρινή μνήμη, προωθώντας τα δεδομένα από αυτήν στον πελάτη. Εάν δεν θέλετε να εξάγετε δεδομένα στον χρήστη, θα πρέπει να καλέσετε την ακόλουθη μέθοδο:

<% Response.Clear Response.End %>

Μέθοδος Response.AddHeader

Η μέθοδος AddHeader προσθέτει μια κεφαλίδα HTML με συγκεκριμένες τιμές. Αυτή η μέθοδος προσθέτει πάντα μια νέα κεφαλίδα στην απάντηση στο πρόγραμμα περιήγησης πελάτη. Αυτή η μέθοδος δεν αντικαθιστά την υπάρχουσα κεφαλίδα με μια νέα. Η προστιθέμενη κεφαλίδα δεν μπορεί να αφαιρεθεί.

Αυτή η μέθοδος χρησιμοποιείται μόνο για «προχωρημένες» εργασίες.

Response.AddHeader variable_name, value

Επιλογές:

  • variable_name- Το όνομα των νέων παραμέτρων κεφαλίδας HTML.
  • έννοια- Μια καθορισμένη τιμή που θα απομνημονευθεί στην κεφαλίδα.

Σημειώσεις:

Για σωστή λειτουργίαμέθοδο, το variable_name δεν πρέπει να περιέχει κάτω παύλα (_). Το σύνολο ServerVariables ερμηνεύει την υπογράμμιση ως παύλα στην κεφαλίδα. Για παράδειγμα, το ακόλουθο σενάριο αναγκάζει τον διακομιστή να βρει μια παράμετρο από την κεφαλίδα HTML που ονομάζεται MY-HEADER.

<% Requset.ServerVariables("HTTP_MY_HEADER") %>

Δεδομένου ότι το πρωτόκολλο HTTP απαιτεί να περάσουν όλες οι παράμετροι κεφαλίδας πριν από το σώμα της σελίδας HTML, πρέπει να καλέσετε τη μέθοδο AddHeader στο σενάριό σας πριν ξεκινήσει η περιγραφή. .... Υπάρχει μια εξαίρεση. Εάν η ιδιότητα Buffer έχει οριστεί σε true, τότε μπορείτε να γράψετε AddHeader οπουδήποτε στο σενάριο, αλλά πριν από την πρώτη κλήση στη μέθοδο Flush. Διαφορετικά, η κλήση της μεθόδου AddHeader θα δημιουργήσει ένα σφάλμα.

Τα ακόλουθα δύο αρχεία .ASP δείχνουν αυτό το τελευταίο σημείο.

<% Response.AddHeader "Внимание!", "Текст сообщения об ошибке"%> το κείμενό σας στη σελίδα

Σε αυτό το παράδειγμα, η σελίδα δεν αποθηκεύεται στην προσωρινή μνήμη. Το σενάριο λειτουργεί ωστόσο το AddHeader καλείται πριν ο διακομιστής παράγει έξοδο HTML στον πελάτη.

<% Response.Buffer = true %> Ορίστε μερικές πληροφορίες από τη σελίδα σας...<%Response.AddHeader "Внимание!", "сообщение об ошибке"%> <%Response.Flush%> <%Response.Write("некий текст")%>

Στο δεύτερο παράδειγμα, η σελίδα αποθηκεύεται στην προσωρινή μνήμη και, ως αποτέλεσμα, ο διακομιστής δεν εξάγει κείμενο στον υπολογιστή-πελάτη μέχρι να τελειώσει το ίδιο το σενάριο ή να εμφανιστεί η μέθοδος Flush. Μπορείτε να χρησιμοποιήσετε αυτήν τη μέθοδο για να στείλετε πολλά αντίγραφα κάποιας παραμέτρου κεφαλίδας με διαφορετικές τιμές, όπως με την κεφαλίδα WWW-Authenticate.

Μέθοδος Response.AppendToLog

Η μέθοδος AppendToLog προσθέτει μια γραμμή στο τέλος του αρχείου αναφοράς (αρχείο καταγραφής) του διακομιστή web. Μπορείτε να καλέσετε αυτήν τη μέθοδο όσες φορές χρειάζεστε. Κάθε φορά που καλείτε τη μέθοδο, η συμβολοσειρά που καθορίζετε θα γράφεται στο αρχείο αναφοράς διακομιστή.

Τιμή Response.AppendToLog

Επιλογές:

  • έννοια- Κείμενο που θα προστεθεί στο αρχείο αναφοράς διακομιστή ιστού. Αυτή η συμβολοσειρά δεν μπορεί να περιέχει τον χαρακτήρα κόμματος (,). Επιπλέον, το συνολικό μήκος της γραμμής που προστέθηκε δεν πρέπει να υπερβαίνει τους 80 χαρακτήρες.

Σημειώσεις:

Για να χρησιμοποιήσετε αυτήν τη δυνατότητα, πρέπει να έχετε ενεργοποιημένη την επιλογή Ερώτημα URI στον πίνακα "Προηγμένες ιδιότητες καταγραφής" για αυτόν τον διακομιστή ιστού στις υπηρεσίες IIS.

Μέθοδος Response.BinaryWrite

Η μέθοδος BinaryWrite σάς επιτρέπει να γράψετε συγκεκριμένες πληροφορίες στην τρέχουσα έξοδο HTTP χωρίς καμία μετατροπή χαρακτήρων. Αυτή η μέθοδος είναι χρήσιμη για την έξοδο πληροφοριών χωρίς συμβολοσειρά, όπως δυαδικά δεδομένα που απαιτούνται από μια εφαρμογή.

Response.BinaryWrite δεδομένα

Επιλογές:

  • δεδομένα- Δεδομένα που προορίζονται για έξοδο HTTP.

Εάν έχετε ένα αντικείμενο που παράγει έναν πίνακα byte, μπορείτε να χρησιμοποιήσετε την ακόλουθη κλήση σε αυτήν τη μέθοδο για να μεταβιβάσετε αυτόν τον πίνακα σε κάποια εφαρμογή που εκτελείται στον υπολογιστή-πελάτη.

<% Set BinGen = Server.CreateObject(My.BinaryGenerator) Pict = BinGen.MakePicture Response.BinaryWrite Pict %>

Απάντηση.Σαφής μέθοδος

Η μέθοδος Clear διαγράφει όλα τα εξόδους HTML σε προσωρινή μνήμη. Ωστόσο, αυτή η μέθοδος δεν διαγράφει τις πληροφορίες buffer που σχετίζονται με την κεφαλίδα. Μπορείτε να χρησιμοποιήσετε αυτήν τη μέθοδο για τη διαχείριση σφαλμάτων. Ωστόσο, η εκτέλεση αυτής της μεθόδου θα οδηγήσει σε σφάλμα εάν η ιδιότητα Response.Buffer δεν είναι αληθής.

Ιδιότητα Response.CacheControl

Αυτή η ιδιότητα αντικαθιστά την προεπιλεγμένη τιμή. Όταν ορίζετε την ιδιότητα σε Δημόσιο, ο διακομιστής μεσολάβησης μπορεί να αποθηκεύσει προσωρινά την έξοδο που δημιουργείται από το ASP.

Response.CacheControl [= κεφαλίδα ελέγχου προσωρινής μνήμης]

Επιλογές:

  • Κεφαλίδα ελέγχου προσωρινής μνήμης- Αυτή η παράμετρος ελέγχου κεφαλίδας μπορεί να είναι είτε Δημόσια είτε Ιδιωτική.

Ιδιότητα Response.CharSet

Η ιδιότητα CharSet σάς επιτρέπει να προσθέσετε το όνομα του πίνακα κωδικών χαρακτήρων (για παράδειγμα, WINDOWS-1251) στην κεφαλίδα HTML, τη γραμμή τύπου περιεχομένου.

Response.CharSet code_table_name

Επιλογές:

  • κωδικός_πίνακας_όνομα- Μια συμβολοσειρά που καθορίζει τον πίνακα κωδικοποίησης για αυτήν τη σελίδα HTML. Το όνομα αυτού του πίνακα κώδικα θα προστεθεί στην κεφαλίδα του αρχείου HTML κάτω από την παράμετρο "content-type".

Για μια σελίδα ASP που δεν χρησιμοποιεί την ιδιότητα Response.Charset, η παράμετρος "content-type" στην κεφαλίδα θα είναι η εξής:

Content-type:text/html

Εάν το αρχείο ASP περιέχει την εντολή

<%Response.Charset("Windows-1251")%>

τότε στην κεφαλίδα το πεδίο τύπου περιεχομένου θα μοιάζει

Content-type:text/html; charset=Windows-1251

Σχόλιο:

Αυτή η συνάρτηση εισάγει οποιαδήποτε γραμμή στην κεφαλίδα και δεν ελέγχει την εγκυρότητά της.

Εάν μια σελίδα περιέχει πολλές ετικέτες Response.Charset, τότε κάθε επόμενη θα αντικαταστήσει την τιμή με τη δική της.

Ιδιότητα Response.ContentType

Η ιδιότητα ContentType σάς επιτρέπει να καθορίσετε τον τύπο (τύπο) του περιεχομένου του αρχείου HTML. Εάν αυτή η ιδιότητα δεν χρησιμοποιείται, τότε το text/html λαμβάνεται από προεπιλογή.

Response.ContentType [=content_type]

Επιλογές:

  • Τύπος περιεχομένου- Μια συμβολοσειρά που περιγράφει τον τύπο περιεχομένου HTML. Αυτή η συμβολοσειρά συνήθως παίρνει τη μορφή "τύπος/υποτύπος", όπου ο τύπος είναι η κύρια κατηγορία του περιεχομένου και ο υποτύπος υποδεικνύει τον τύπο του περιεχομένου. Για να πάρεις πλήρης λίσταυποστηριζόμενοι τύποι - ανατρέξτε στην τεκμηρίωση του προγράμματος περιήγησής σας ή στην προδιαγραφή HHTP.

Το ακόλουθο παράδειγμα δείχνει τη ρύθμιση του τύπου περιεχομένου σε Μορφή ορισμού καναλιού (Κανάλια Push).

<% Response.ContentType = "application/x-cdf" %>

Το δεύτερο παράδειγμα δείχνει τη ρύθμιση μιας ιδιότητας στις πιο γνωστές τιμές.

<% Response.ContentType = "text/HTML" %> <% Response.ContentType = "image/GIF" %> <% Response.ContentType = "image/JPEG" %>

Response.Expires ιδιοκτησία

Η ιδιότητα Expires καθορίζει τη χρονική περίοδο μέχρι σελίδα HTMLκρυφά από το πρόγραμμα περιήγησης θεωρείται ότι δεν έχει λήξει (περίοδος αποθήκευσης). Εάν ένας χρήστης ζητήσει από το πρόγραμμα περιήγησης μια προσωρινά αποθηκευμένη σελίδα που δεν έχει λήξει, το πρόγραμμα περιήγησης την επιστρέφει απευθείας από την προσωρινή μνήμη του.

Response.Expires [=number]

Επιλογές:

  • αριθμός- Ο χρόνος σε λεπτά πριν από μια σελίδα θεωρείται "εκπρόθεσμη". Η ρύθμιση αυτής της τιμής σε 0 προκαλεί τη συγκεκριμένη σελίδα να "λήξει" αμέσως.

Σχόλιο:

Εάν αυτή η ιδιότητα οριστεί περισσότερες από μία φορές σε μια σελίδα, χρησιμοποιείται η μικρότερη τιμή.

Response.ExpiresAbsolute ιδιοκτησία

Η ιδιότητα ExpiresAbsolute καθορίζει την ώρα και την ημερομηνία μετά την οποία η σελίδα HTML που αποθηκεύτηκε προσωρινά από το πρόγραμμα περιήγησης θεωρείται ότι έχει λήξει (η περίοδος διατήρησης έχει λήξει). Εάν ένας χρήστης ζητήσει από το πρόγραμμα περιήγησης μια προσωρινά αποθηκευμένη σελίδα που δεν έχει λήξει, το πρόγραμμα περιήγησης την επιστρέφει απευθείας από την προσωρινή μνήμη του. Εάν έχει καθοριστεί η ώρα (και έχει καθοριστεί η ημερομηνία), τότε η "ημερομηνία λήξης" αυτής της σελίδας λήγει τα μεσάνυχτα της συγκεκριμένης ημέρας. Εάν δεν έχει καθοριστεί ούτε ώρα ούτε ημερομηνία, τότε η τιμή εκχωρείται σύμφωνα με την ημέρα και την ώρα που εκτελέστηκε το σενάριο.

Response.ExpiresAbsolute [= [ημερομηνία] [ώρα]]

Επιλογές:

  • ημερομηνία- Υποδεικνύει την ημερομηνία λήξης της «διάρκειας ζωής». Η μορφή ημερομηνίας πρέπει να συμμορφώνεται με το πρότυπο RFC-1123.
  • χρόνος- Υποδεικνύει την ώρα λήξης της σελίδας. Αυτή η τιμή μετατρέπεται σε μορφή GMT (μέση ώρα Γκρίνουιτς) πριν σταλεί η κεφαλίδα στον πελάτη.

Σχόλιο:

Εάν μια δεδομένη ιδιότητα ορίζεται περισσότερες από μία φορές σε μια σελίδα, τότε ο χρόνος λήξης της "περιόδου αποθήκευσης" θεωρείται ότι είναι ο παλαιότερος από όλες τις καθορισμένες τιμές.

<% Response.ExpiresAbsolute = #May 31,1998 13:30:15# %>

Ιδιότητα Response.IsClientConnected

Αυτή η ιδιότητα είναι μόνο για ανάγνωση, που σημαίνει ότι δεν μπορούν να εκχωρηθούν τιμές σε αυτήν την ιδιότητα. Αυτή η ιδιότητα υποδεικνύει εάν ο υπολογιστής-πελάτης είναι συνδεδεμένος ή δεν είναι πλέον συνδεδεμένος στον διακομιστή που ορίζεται στο τελευταίο του Response.Write.

Response.IsClientConnected()

Σχόλιο:

Αυτή η ιδιότητα σάς επιτρέπει να προσδιορίζετε πότε είναι συνδεδεμένος ένας χρήστης και πότε αποσυνδέεται από τον διακομιστή. Για παράδειγμα, η χρονική περίοδος μεταξύ της απόκρισης του διακομιστή και της υποβολής του αιτήματος από τον πελάτη δίνει σιγουριά ότι ο πελάτης είναι ακόμα συνδεδεμένος και είναι λογικό να συνεχιστεί η εκτέλεση του σεναρίου.

<% "посмотрим, подключен ли пользователь If Not Response.IsClientConnected Then "получаем номер сессии и закрываем сессию Shutdownid = Session.SessionID "подготовка к закрытию сессии Shutdown(Shutdownid) End If %>

Ιδιότητα Response.Pics

Αυτή η ιδιότητα σάς επιτρέπει να προσθέσετε την τιμή του πεδίου pics-label στην κεφαλίδα απόκρισης.

Response.PICS(PICSLabel)

Επιλογές

  • PicsLabel- Μια συμβολοσειρά που μετατρέπεται σε μορφή PICS - μια ετικέτα. Η τιμή που καθορίζεται σε αυτήν την παράμετρο προστίθεται στην κεφαλίδα απόκρισης στο πεδίο PICS.

Για ένα αρχείο ASP που περιλαμβάνει:

<% Response.PICS("(PICS-1.1 ετικέτες στις αξιολογήσεις " & chr(34) & "1997.01.05T08:15-0500" έως "1999.12.31T23:59-0000" (v 0 s 010 n 0))%>

Θα δημιουργηθεί η επόμενη κεφαλίδα

Ετικέτα PICS:(PICS-1.1 ετικέτες στην βαθμολογία "1997.01.05T08:15-0500" έως τη βαθμολογία "1999.12.31.T23:59-0000" (v 0 s 0 1 0 n 0))

Σχόλιο:

Αυτή η ιδιότητα σάς επιτρέπει να εισάγετε οποιεσδήποτε γραμμές στην κεφαλίδα, ανεξάρτητα από το αν οι γραμμές είναι έγκυρες.

Εάν μια σελίδα περιέχει πολλές ετικέτες που περιέχουν Response.PICS, τότε κάθε επόμενη θα αντικαταστήσει την τιμή της προηγούμενης.

Ιδιότητα Response.Status

Αυτή η ιδιότητα σάς επιτρέπει να καθορίσετε τη γραμμή κατάστασης που επιστρέφεται από τον διακομιστή. Οι τιμές κατάστασης ορίζονται στην προδιαγραφή HTTP.

Response.Status = status_description

Επιλογές

  • κατάσταση_περιγραφή- Μια γραμμή που περιέχει έναν τριψήφιο αριθμό που υποδεικνύει τον κωδικό κατάστασης και επίσης μια σύντομη περιγραφή αυτού του κωδικού. Για παράδειγμα, 310 Move Permanently.

Το ακόλουθο παράδειγμα δείχνει τη ρύθμιση κατάστασης:

<% Response.Status = "401 Unauthorized" %>

Σχόλιο:

Χρησιμοποιήστε αυτήν την ιδιότητα για να τροποποιήσετε τη συμβολοσειρά που επιστρέφεται από τον διακομιστή.

Μετά τη λήψη και την ερμηνεία ενός μηνύματος αιτήματος, ένας διακομιστής απαντά με ένα μήνυμα απόκρισης HTTP:

  • Μια γραμμή κατάστασης
  • Μηδέν ή περισσότερα πεδία κεφαλίδας (Γενικά|Απόκριση|Οντότητα) ακολουθούμενα από CRLF
  • Μια κενή γραμμή (δηλαδή μια γραμμή χωρίς τίποτα πριν από το CRLF) που υποδεικνύει το τέλος των πεδίων κεφαλίδας
  • Προαιρετικά ένα μήνυμα-σώμα
  • Οι ακόλουθες ενότητες εξηγούν καθεμία τις οντότητες που χρησιμοποιούνται σε ένα μήνυμα απόκρισης HTTP.

    Γραμμή κατάστασης μηνύματος

    Μια γραμμή κατάστασης αποτελείται από την έκδοση πρωτοκόλλου ακολουθούμενη από έναν αριθμητικό κωδικό κατάστασης και τη σχετική φράση κειμένου. Τα στοιχεία διαχωρίζονται με χαρακτήρες space SP.

Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

Έκδοση HTTP

Ένας διακομιστής που υποστηρίζει HTTP έκδοση 1.1 θα επιστρέψει τις ακόλουθες πληροφορίες έκδοσης:

Έκδοση HTTP = HTTP/1.1

Κωδικός κατάστασης

Το στοιχείο Status-Code είναι ένας ακέραιος 3ψήφιος αριθμός όπου το πρώτο ψηφίο του Status-Code ορίζει την κλάση απόκρισης και τα δύο τελευταία ψηφία δεν έχουν κανένα ρόλο κατηγοριοποίησης. Υπάρχουν 5 τιμές για το πρώτο ψηφίο:

Σ.Ν. Κωδικός και Περιγραφή
1 1xx: Ενημερωτικό

Σημαίνει ότι το αίτημα ελήφθη και η διαδικασία συνεχίζεται.

2 2xx: Επιτυχία

Σημαίνει ότι η ενέργεια παραλήφθηκε με επιτυχία, έγινε κατανοητή και αποδεκτή.

3 3xx: Ανακατεύθυνση

Σημαίνει ότι πρέπει να ληφθούν περαιτέρω μέτρα προκειμένου να ολοκληρωθεί το αίτημα.

4 4xx: Σφάλμα πελάτη

Σημαίνει ότι το αίτημα περιέχει λανθασμένη σύνταξη ή δεν μπορεί να εκπληρωθεί.

5 5xx: Σφάλμα διακομιστή

Σημαίνει ότι ο διακομιστής απέτυχε να εκπληρώσει ένα φαινομενικά έγκυρο αίτημα.

Οι κωδικοί κατάστασης HTTP είναι επεκτάσιμοι και οι εφαρμογές HTTP δεν απαιτείται να κατανοούν την έννοια όλων των καταχωρημένων κωδικών κατάστασης. Μια λίστα με όλους τους κωδικούς κατάστασης έχει δοθεί σε ξεχωριστό κεφάλαιο για αναφορά.

Πεδία κεφαλίδας απόκρισης

Θα μελετήσουμε το General-header και το Entity-header σε ξεχωριστό κεφάλαιο όταν θα μάθουμε τα πεδία κεφαλίδας HTTP. Προς το παρόν, ας ελέγξουμε ποια είναι τα πεδία κεφαλίδας απόκρισης.

Τα πεδία κεφαλίδας απάντησης επιτρέπουν στον διακομιστή να μεταβιβάσει πρόσθετες πληροφορίες σχετικά με την απόκριση που δεν μπορούν να τοποθετηθούν στη Γραμμή κατάστασης. Αυτά τα πεδία κεφαλίδας παρέχουν πληροφορίες για τον διακομιστή και για περαιτέρω πρόσβαση στον πόρο που προσδιορίζεται από το Request-URI.

  • Proxy-Authenticate

  • WWW-Authenticate

Μπορείτε να εισαγάγετε τα προσαρμοσμένα πεδία σας σε περίπτωση που πρόκειται να γράψετε τον δικό σας προσαρμοσμένο πελάτη και διακομιστή Web.

Παραδείγματα μηνυμάτων απάντησης

Τώρα ας τα συγκεντρώσουμε όλα μαζί για να σχηματίσουμε μια απάντηση HTTP για ένα αίτημα ανάκτησης του γεια.htmσελίδα από τον διακομιστή web που εκτελείται στον ιστότοπο

HTTP/1.1 200 OK Ημερομηνία: Δευτ., 27 Ιουλίου 2009 12:28:53 GMT Διακομιστής: Apache/2.2.14 (Win32) Τελευταία τροποποίηση: Τετ, 22 Ιουλίου 2009 19:15:56 GMT Περιεχόμενο-Μήκος: Τύπος: text/html Σύνδεση: Κλειστό

Γειά σου Κόσμε!



Το ακόλουθο παράδειγμα δείχνει ένα μήνυμα απόκρισης HTTP που εμφανίζει κατάσταση σφάλματος όταν ο διακομιστής web δεν μπορούσε να βρει τη σελίδα που ζητήθηκε:

HTTP/1.1 404 Δεν βρέθηκε Ημερομηνία: Κυριακή, 18 Οκτ 2012 10:36:20 GMT Διακομιστής: Apache/2.2.14 (Win32) Περιεχόμενο-Μήκος: 230 Σύνδεση: Κλειστό Περιεχόμενο-Τύπος: text/html; charset=iso-8859-1 404 δεν βρέθηκε

Δεν βρέθηκε

Η διεύθυνση URL /t.html που ζητήθηκε δεν βρέθηκε σε αυτόν τον διακομιστή.



Το παρακάτω είναι ένα παράδειγμα μηνύματος απόκρισης HTTP που δείχνει κατάσταση σφάλματος όταν ο διακομιστής Ιστού αντιμετώπισε λάθος έκδοση HTTP στο δεδομένο αίτημα HTTP:

HTTP/1.1 400 Κακή ημερομηνία αίτησης: Κυριακή, 18 Οκτ 2012 10:36:20 GMT Διακομιστής: Apache/2.2.14 (Win32) Μήκος περιεχομένου: 230 Τύπος περιεχομένου: text/html; charset=iso-8859-1 Σύνδεση: Κλειστό 400 Κακό αίτημα

Κακό αίτημα

Το πρόγραμμα περιήγησής σας έστειλε ένα αίτημα που αυτός ο διακομιστής δεν μπορούσε να κατανοήσει.

Η γραμμή αιτήματος περιείχε μη έγκυρους χαρακτήρες μετά τη συμβολοσειρά πρωτοκόλλου.



Συνεχίζοντας το θέμα:
Μόντεμ

Αυτό το mod δείχνει την αποτελεσματικότητά σας στη μάχη τις τελευταίες 24 ώρες. Υπάρχει μια ρύθμιση παραμέτρων για τη ρύθμιση ορισμένων παραμέτρων. Στατιστικά συνεδρίας Το mod βασίζεται σε, προσθέτει...

Νέα άρθρα
/
Δημοφιλής