ওয়েব ব্রাউজারে পিছনের বোতামটি কীভাবে কাজ করে?


84

আমি এই প্রশ্নটি সম্পর্কে ওয়েবে অনুসন্ধান করেছি কিন্তু আমি কিছুই পাইনি:

পিছনের বোতামটির যুক্তি কী? ওয়েব ব্রাউজারে আমরা পিছনের বোতামটি চাপলে কী ঘটছে?

আমি সত্যিই সে সম্পর্কে আরও জানতে চাই।

ধন্যবাদ.


14
এটি কী অনুরোধটি পুনরায় পাঠায় বা স্থানীয় ক্যাশে থেকে পৃষ্ঠাটি লোড করে? আপনি যখন পিছনে ফিরে যাবেন তখন প্রথম প্রতিক্রিয়াতে তৈরি কুকিজগুলি কী পাঠানো হয়? ইত্যাদি
জিমি

উত্তর:


100

আপনার ওয়েব ব্রাউজারটি আপনি সেই উইন্ডোটিতে যে ওয়েব পৃষ্ঠাগুলি পরিদর্শন করেছেন সেগুলির একটি স্ট্যাক (বা আপনি যদি চান তবে তালিকা) রাখে। ধরা যাক আপনার হোম পেজটি গুগল.কম এবং সেখান থেকে আপনি কয়েকটি অন্যান্য ওয়েবসাইট: ইউটিউব ডটকম, ইয়াহু ডট কম, এবং সিএনএন.কম দেখুন। শেষটি দেখার পরে, তালিকাটি এরকম দেখাচ্ছে:

google.com -> youtube.com -> yahoo.com -> cnn.com
                                            ^
                                            |
                                       current page

আপনি পিছনে বোতাম টিপলে, ব্রাউজারটি আপনাকে তালিকার আগের পৃষ্ঠায় ফিরিয়ে নিয়ে যায়:

google.com -> youtube.com -> yahoo.com -> cnn.com
                                ^
                                |
                           current page

এই মুহুর্তে আপনাকে আবার ইউটিউব ডটকম এ নিয়ে যেতে আবার ফিরে টিপতে পারেন, বা আবার সিএনএন.কম এ রাখতে আপনি ফরোয়ার্ড টিপতে পারেন। ধরা যাক আপনি দ্বিতীয়বার পিছনে টিপুন:

google.com -> youtube.com -> yahoo.com -> cnn.com
                   ^
                   |
              current page

আপনি যদি এখন যান, বলুন, abc.com, তালিকাটি দেখতে দেখতে এইরকম পরিবর্তন হয়:

google.com -> youtube.com -> abc.com
                               ^
                               |
                          current page

নোট করুন যে ইয়াহু.কম এবং সিএনএন.কম উভয়ই তালিকা থেকে চলে গেছে। কারণ আপনি একটি নতুন রুট নিয়েছেন। আপনি এখন যেখানে ছিলেন সেখানে পৌঁছানোর জন্য আপনি যে পৃষ্ঠাগুলিতে পরিদর্শন করেছেন সেগুলি ব্রাউজার কেবলমাত্র একটি তালিকা বজায় রাখে, আপনি যে কোনও পৃষ্ঠায় গেছেন সেটির ইতিহাস নয়। আপনি যে সাইটটি পরিদর্শন করেছেন সেটির কাঠামো সম্পর্কে ব্রাউজারটিও কিছু জানে না, যা কিছু অবাক করা আচরণ করতে পারে।

আপনি একটি শপিং সাইটে (ne.com, একটি সংক্ষিপ্ত উদাহরণ হিসাবে) যা ব্রাউজ করার জন্য পণ্যগুলির বিভাগ এবং উপশ্রেণীশ্রেণীতে রয়েছে। সাইট ডিজাইনার বিবেচনা করে উইন্ডোটির শীর্ষের কাছে ব্রেডক্র্যাম্বগুলি সরবরাহ করেছে যাতে আপনাকে বিভাগগুলির মাধ্যমে চলাচল করতে পারে। আপনি সাইটের শীর্ষ পৃষ্ঠায় শুরু করুন, হার্ডওয়্যার ক্লিক করুন, তারপরে মেমোরি। তালিকাটি এখন এর মতো দেখাচ্ছে:

google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem
                                           ^
                                           |
                                      current page

আপনি হার্ডওয়্যার বিভাগে ফিরে যেতে চান, সুতরাং আপনি পিছনের বোতামটি ব্যবহার না করে পিতৃ বিভাগে যেতে ব্রেডক্রাম্বগুলি ব্যবহার করেন। এখন ব্রাউজারের তালিকাটি এর মতো দেখাচ্ছে:

google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem -> ne.com/hw
                                                          ^
                                                          |
                                                     current page

সাইটের কাঠামো অনুসারে, আপনি পিছনে চলে গিয়েছিলেন (একটি স্তর উপরে), তবে ব্রাউজারে আপনি এগিয়ে গিয়েছিলেন কারণ আপনি একটি লিঙ্কে ক্লিক করেছেন। যে কোনও সময় আপনি যখন কোনও লিঙ্কে ক্লিক করেন বা ঠিকানা বারে কোনও URL টাইপ করেন, আপনি ব্রাউজারের সাথে সম্পর্কিত যতদূর এগিয়ে চলেছেন, সেই লিঙ্কটি আপনাকে এমন কোনও পৃষ্ঠাতে নিয়ে যায় বা না যা আপনি ইতিমধ্যে গেছেন।

শেষ অবধি, আপনি মূল সাইট পৃষ্ঠাতে (ne.com) ফিরে যেতে চান। আপনি ব্রেডক্র্যামব ব্যবহার করতে পারতেন, কিন্তু এবার আপনি পিছনে বোতামটি ক্লিক করেছেন - এটা স্পষ্টতই মনে হয় যে এটি আপনাকে এক স্তর পর্যন্ত নিয়েছে, তাই না? তবে কোথায় লাগে?

এটি প্রাথমিকভাবে অনেক ব্যবহারকারীর কাছে বিভ্রান্ত হয় (আমি নিজেও অন্তর্ভুক্ত ছিলাম, যখন আমি ঠিক এটি করি) তবে এটি আপনাকে মেমরি বিভাগে ফিরে "স্তর" নেবে। পৃষ্ঠাগুলির তালিকার দিকে লক্ষ্য করা, কেন সহজে তা সহজেই দেখা যায়:

google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem -> ne.com/hw
                                            ^
                                            |
                                       current page

কেবল পিছনের বোতামটি ব্যবহার করে মূল পৃষ্ঠায় ফিরে যেতে আরও দুটি প্রেসের দরকার পড়ে, আপনাকে হার্ডওয়্যার বিভাগে এবং "অবশেষে" মূল পৃষ্ঠায় নিয়ে যেতে হবে। এটি আমাদের প্রোগ্রামারদের কাছে কী ঘটছে তা এতটাই সুস্পষ্ট বলে মনে হয়, তবে নিয়মিত ব্যবহারকারীর বাইরে থাকা হ্যাকটি সারাক্ষণ আশ্চর্য করে কারণ তারা বুঝতে পারে না যে ব্রাউজারটি যে ওয়েবসাইটেই তা ঘটবে সেটির শ্রেণিবদ্ধ কাঠামো সম্পর্কে কিছুই জানে না।

ব্রাউজারগুলি এখন যা কিছু করে না তার পরিবর্তে সাইট ডিজাইনারদের ব্যাক বোতামটি স্পষ্ট কাজটি করতে (আপনাকে একটি স্তর অবলম্বন করতে) অনুমতি দেয় তবে কি দুর্দান্ত লাগবে?

সম্পাদনা: একজন মন্তব্যকারী জিজ্ঞাসা করেছিল যে ব্রাউজারটি পৃষ্ঠাটি পুনরায় লোড করে বা কেবল স্থানীয় স্থানীয় ক্যাশে থেকে এটি প্রদর্শন করে।

উত্তরটি হল, এটা নির্ভরশীল. সাইট ডিজাইনাররা ব্রাউজারটি পৃষ্ঠাটি ক্যাশে করা উচিত কিনা তা নির্দিষ্ট করতে পারে। নন-ক্যাশেড হিসাবে সেট করা পৃষ্ঠাগুলির জন্য, আপনি পিছনে চাপলে ব্রাউজারটি সার্ভার থেকে পৃষ্ঠাটি পুনরায় লোড করে, মনে হয় এটি প্রথমবার আপনি এটি দেখার জন্য ছিলেন। ক্যাশেড পৃষ্ঠাগুলির জন্য, ব্রাউজারটি এটি ক্যাশে থেকে প্রদর্শন করে, যা অনেক দ্রুত।


4
ব্রাউজারটি যখন ক্যাশে খুঁজছে, তখন এটি সার্ভারের প্রতিক্রিয়াটির শিরোনামে মেয়াদ শেষ হওয়ার তারিখটি পরীক্ষা করে? আমি অনুমান করি যে পৃষ্ঠাটির মেয়াদ শেষ হলে ব্রাউজারটি একই জিজ্ঞাসাটি ফেরত পাঠাবে, না? পেছনের বোতামের ক্ষেত্রে কী একইভাবে পঠন এবং পোস্ট পরিচালনা করা হয়? আপনার দুর্দান্ত উত্তরের জন্য আপনাকে ধন্যবাদ।
পিয়েরে থিবল্ট

4
প্রথম প্রশ্ন: হ্যাঁ, এটি সঠিক। পৃষ্ঠাটির মেয়াদ শেষ হয়ে গেলে ব্রাউজারটিকে একই URL এবং POST ডেটা ব্যবহার করে পৃষ্ঠাটি পুনরায় অনুরোধ করতে হবে। তবে পোস্ট অপারেশনগুলির জন্য, বেশিরভাগ ব্রাউজার ব্যবহারকারীকে পুনরায় পাঠাতে চান কিনা তা জিজ্ঞাসা করে। আমার ধারণা পোষ্টের ডেটা পুনরায় প্রেরণের ফলে ডুপ্লিকেট পোস্টিং, সদৃশ লেনদেন ইত্যাদির ফলে সম্ভাব্য ফলস্বরূপ হতে পারে designer এটি রোধ করার জন্য এটি সাইট ডিজাইনারের পক্ষে।
ব্যারি ব্রাউন

হ্যাঁ, তবে কোনও পোষ্টের ক্ষেত্রে, আমি মনে করি যে ব্রাউজারটি কেবলমাত্র POST এর ক্ষেত্রেই মেয়াদ শেষ হয়ে গেছে ask আমি কি সঠিক? কারণ যখন আমি এএসপিএন দিয়ে ডেভলপমেন্ট করছিলাম তখন পিছনের বোতামটি জিজ্ঞাসা না করে আবার সার্ভারে পোস্ট করছিল।
পিয়েরে থিবল্ট

সম্ভবত ব্রাউজার উপর নির্ভর করে। আমার ব্রাউজার (সাফারি) সর্বদা জিজ্ঞাসা করে - কমপক্ষে আমি মনে করি এটি সর্বদা জিজ্ঞাসা করে।
ব্যারি ব্রাউন

আমি সাফারি ব্যবহার করছিলাম। এটি সবসময় জিজ্ঞাসা করে না। এটি অবশ্যই আমার যুক্তিযুক্ত যুক্তি অনুসরণ করবে।
পিয়েরে থিবল্ট

5

আমি এটিকে আমার শেষ অনুরোধটি পুনরায় জারি করার মত ভাবতে চাই। আপনি যদি একটি সাধারণ জিইটি সঞ্চালন করেন তবে এটি সম্ভবত শেষ বারের মতো একই জিনিস ফিরে আসবে (বিয়োগ গতিশীল সামগ্রী)। আপনি যদি কোনও পোস্ট দিয়ে থাকেন তবে আপনি ফর্মটি (নিশ্চিত হওয়ার পরে) সার্ভারে জমা দিতে যাচ্ছেন।


2

মূল ধারণাটি শেষ পৃষ্ঠা বা লজিক্যাল সাইট বিভাগে ফিরে আসা।

জিমেইলের দিকে তাকিয়ে আপনি দেখতে পাবেন যে আপনি কোনও অনুসন্ধান করেন এবং কোনও বার্তা ক্লিক করেন তারপরে পিছনের বোতামটি চাপুন এটি আপনাকে যে সন্ধানে নিয়ে গেছে তা আপনাকে ফিরিয়ে আনবে।

আপনি যখন এটি বেশিরভাগ ব্রাউজারগুলিতে ক্লিক করেন এটি হয় সর্বশেষ http অনুরোধটি পুনরায় পাঠাবে বা ব্রাউজারের সাইটগুলিকে ক্যাশে দিলে একটি ক্যাশে লোড করবে।


ব্রাউজার কখন ক্যাশে ব্যবহার করে এবং কখন এটি একটি অনুরোধ পুনরায় পাঠায়?
পিয়েরে থিবল্ট

এটি ব্রাউজার এবং সেই পয়েন্ট পর্যন্ত কী করা হয়েছিল তার উপর নির্ভর করে। আপনি বেশিরভাগ ব্রাউজারকে ক্যাশে না রেখে সেট করতে পারেন এবং সেগুলি সর্বদা পুনরায় লোড হবে। ক্যাশিংয়ের জন্য একটি HTML মেটাট্যাগ রয়েছে তবে এটি শ্রদ্ধার সাথে ব্রাউজার পর্যন্ত।
ববব্রেজ

2

আমি মনে করি এটি ব্যাখ্যা করার সবচেয়ে সহজ উপায় হল সিউডোকোডে:

class Page:
    String url, ...
    Page previous, next # implements a doubly-linked list

class History:
    Page current # current page

    void back():
        if current.previous == null:
            return
        current = current.previous
        refresh()

    void forward():
        if current.next == null:
            return
        current = current.next
        refresh()

    void loadPage(Page newPage):
        newPage.previous = current
        current.next = newPage # remove all the future pages
        current = current.next
        display(current)

1

দেখা পৃষ্ঠাগুলির একটি ইতিহাস স্ট্যাকের মতো আকারে রাখা হয়েছে। আপনি যখন শীর্ষ তিনটি পৃষ্ঠা "পপ" করেন (উদাহরণস্বরূপ, এ, বি, সি) এবং তারপরে একটি ভিন্ন পৃষ্ঠা ডি তে যান, আপনি এগিয়ে বিদ্ধ হয়ে আবার বি তে যেতে পারবেন না।


0

ডিভলপার হিসাবে, আপনার ব্রাউজারটি পিছনে বোতামটি কীভাবে পরিচালনা করে তা বিবেচনা করেই আপনার ওয়েব অ্যাপ্লিকেশনটি কাজ করে তা নিশ্চিত করা উচিত :-) এটি কী অনুরোধটি পুনরায় পাঠায়? নতুন অনুরোধটি কি পুরানোটির মতোই, নাকি এটি কোনও উপায়ে আলাদা? ব্রাউজার ব্যবহারকারীকে পুনরায় পোস্টের বিষয়টি নিশ্চিত করতে বলবে? পৃষ্ঠার কোন উপাদানগুলিকে পুনরায় অনুরোধ করা হবে এবং ক্যাশে থেকে লোড করা হবে? ব্রাউজার কি আমার ক্যাশে-নিয়ন্ত্রণ শিরোনামকে সম্মান করবে?

এই প্রশ্নের উত্তরগুলি মেক, ব্রাউজারের সংস্করণ এবং ব্যবহারকারীর সেটিংসের উপর নির্ভর করে। আপনার সফ্টওয়্যারটি ডিজাইন করুন যাতে এটি এতোটুকু গুরুত্ব দেয় না।

খুব সরাসরি উত্তর না দেওয়ার জন্য দুঃখিত, তবে ইতিমধ্যে এখানে কিছু সরল উত্তর রয়েছে।


হায়, ব্যাক বোতাম এমন কোনও কিছুর সম্ভাব্য প্রভাবগুলি বিবেচনা করে যা বেশিরভাগ বিকাশকারীকে পাগল করে তোলে, আমি নিজেই অন্তর্ভুক্ত।
লুইস

0

ব্রাউজারটি সর্বদা স্মরণ রাখার জন্য পৃষ্ঠাগুলি সংরক্ষণ করে এবং যখন আমরা পিছনের বোতামটি টিপतो তখন এটি পূর্ববর্তী পৃষ্ঠার জন্য অনুরোধটি সার্ভারে প্রেরণ করে না পরিবর্তে এটি কেবল এটির ক্যাশেটি দেখতে পাবে যেখানে এটি পৃষ্ঠাগুলি সঞ্চিত করেছিল এবং এটি লাইফোর নিয়মটি অনুসরণ করে তাই এটি আমরা শেষটি যেটি খুললাম পিছনে বোতাম টিপতে প্রথমে সেই পৃষ্ঠাটি দিন


4
না, এটি কাজ করে না! যদি ক্যাশে আর বৈধ হয় না, এটি পৃষ্ঠাটি আবার পেতে সার্ভারে একটি অনুরোধ প্রেরণ করে।
পিয়েরে থিবল্ট

-1

ব্রাউজারটি বর্তমানের আগে দেখা শেষ পৃষ্ঠাটি লোড করে এবং তারপরে ঘটে যাওয়া কোনও পুনঃনির্দেশ অনুসরণ করে?

আমি একধরনের প্রশ্নের পয়েন্টটি মিস করছি বলে মনে হচ্ছে।


তারা সম্ভবত পিছনের বোতামটি অক্ষম করতে চায় - বা এর ব্যবহার রোধ করতে পারে। শুভকামনা।
জন হোভেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.