কম্পিউটারের ইতিহাসের প্রথম যুগে শুধু বড় বড় বিশ্ববিদ্যালয়, গবেষণাগার ও সরকারী গুরুত্বপূর্ণ প্রতিষ্ঠান যেমন প্রতিরক্ষা বা সেনাবাহিনীদের কাছেই শুধু কম্পিউটার ছিল। এই কম্পিউটারগুলো প্রচুর পরিমাণে হিসাব নিকাশ করা, গবেষণালব্ধ তথ্য যাচাই-বাছাই, সংগ্রহ ও সংরক্ষণ করার কাজেই তখন ব্যবহৃত হতো। অচিরেই এক কম্পিউটারকে অন্য কম্পিউটারের সঙ্গে সংযুক্ত করার প্রয়োজনীয়তা উপলব্ধ হয় এবং ধাপে ধাপে ইন্টারনেট ব্যবস্থা তৈরি হয়। সেইসঙ্গে বিভিন্ন ধরনের ডকুমেন্ট বা ফাইল এক কম্পিউটার থেকে অন্য কম্পিউটারে স্থানান্তরের চাহিদা তৈরি হয়।এই চাহিদা থেকেই টিম বার্নার্স-লি (Tim Berners-Lee) ওয়ার্ল্ড ওয়াইড ওয়েব (www: world wide web) বা সংক্ষেপে ওয়েব তৈরি করেন। তিনি তখন সুইজারল্যান্ডের CERN নামক একটি গবেষণাগারে কর্মরত ছিলেন। 1989 সালে তিনি এমন একটি ওয়েবের ধারণা প্রস্তাব করেন যার মাধ্যমে আইপি অ্যাড্রেস (IP Address) ব্যবহার করে এক কম্পিউটার থেকে অন্য কম্পিউটারে বিভিন্ন ডকুমেন্ট পাঠানো যাবে। টিমের ধারণা ছিল ওয়েবের মাধ্যমে বিভিন্ন দেশের বিজ্ঞানীরা যেন তাদের নিজস্ব দেশে বসেই CERN-এর কম্পিউটার থেকে বিভিন্ন তথ্য সংগ্রহ করতে পারেন। তিনি প্রস্তাব করেন, একবারে শত শত পৃষ্ঠার ডকুমেন্ট ফাইল ডাউনলোড করার ব্যবস্থা না করে সব পৃষ্ঠা আলাদা আলাদাভাবেই যেন ইন্টারনেট থেকে সংগ্রহ করার ব্যবস্থা করা যায়। তাতে করে একেকটি পৃষ্ঠায় অন্যান্য দরকারি পৃষ্ঠার লিঙ্ক দিয়ে দেওয়া যাবে। যার যার যেসব পৃষ্ঠা দরকার হবে তারা শুধু সেই সমস্ত পৃষ্ঠাই ডাউনলোড করবেন। তিনি ইন্টারনেট ব্যবহার করে পাঠানো লিখিত তথ্যের নাম দেন হাইপারটেক্সট (Hypertext)। এই হাইপারটেক্সটগুলো খুঁজে পাওয়া যাবে বিভিন্ন নেটওয়ার্ক ঠিকানায় যার নাম হবে হাইপারলিঙ্ক (Hyperlink)। লিখিত তথ্যের বাইরে ছবি, অডিও ও ভিডিও জাতীয় তথ্যকে বলা হবে হাইপারমিডিয়া (Hypermedia)। টিম চিন্তা করেন, এমন একটি উপায় করতে হবে যেন লিঙ্কগুলো মাউস দিয়ে ক্লিক করেই ব্যবহারকারীরা সেই হাইপারলিঙ্ক থেকে হাইপারটেক্সট পেতে পারেন। 1990 সালে তিনি তার সহকর্মীদের সহায়তায় তার ধারণাটিকে আরো সুগঠিত রূপ দিয়ে পুনরায় প্রস্তাব করেন। ওয়েবের এই তথ্যগুলো অন্য কম্পিউটারে দেখার জন্য তিনি একটি সফটওয়্যারও তৈরি করেন যা হচ্ছে একটি ওয়েব ব্রাউজার।
এই মূল ধারণার ওপরেই তৈরি হয়েছে আজকের ওয়েব। বর্তমানে ইন্টারনেটে অসংখ্য ওয়েবসাইট রয়েছে। এই ওয়েবসাইটগুলো নিজের কম্পিউটার থেকে দেখা বা ব্রাউজ করার জন্য আমরা সাধারণত বিভিন্ন সফটওয়্যার ব্যবহার করি। এই সফটওয়্যারগুলোকে বলা হয় ওয়েব ব্রাউজার। বিভিন্ন প্রতিষ্ঠানের তৈরি বিভিন্ন ওয়েব ব্রাউজার রয়েছে। যেমন- মজিলা ফায়ারফক্স, গুগল ক্রোম, সাফারি, ইন্টারনেট এক্সপ্লোরার, মাইক্রোসফট এজ্ ইত্যাদি।
একসময় ওয়েবসাইটগুলো ছিল স্ট্যাটিক (static), অর্থাৎ সেখানে বিভিন্ন তথ্য রাখা হতো এবং ব্যবহারকারী ওয়েব ব্রাউজারের মাধ্যমে সেই তথ্য দেখতে পেতেন। কিন্তু বর্তমানে বেশিরভাগ ওয়েবসাইট আর স্ট্যাটিক ওয়েবসাইট নয়, বরং ডায়নামিক (dynamic) ওয়েবসাইট যেখানে ব্যবহারকারীরা ওয়েবসাইটে বিভিন্ন ইনপুট দেন আর সেই ইনপুট অনুসারে বিভিন্ন আউটপুট তৈরি হয়। এজন্য এগুলোকে ওয়েব অ্যাপ্লিকেশনও বলা হয়। এরকম ওয়েব অ্যাপ্লিকেশনের কিছু উদাহরণ হচ্ছে (google.com, services.nidw.gov.bd, passport.gov.bd) ইত্যাদি।
একটি ওয়েবসাইটের দুটি অংশ থাকে- সার্ভার ও ক্লায়েন্ট। ক্লায়েন্ট সফটওয়্যার ব্যবহারকারীর ইনপুট নিয়ে সার্ভারের কাছে ডেটা পাঠায় যাকে বলা হয় রিকোয়েস্ট (request)। সার্ভার সেই ডেটা অনুসারে ক্লায়েন্টের কাছে জবাব বা রেসপন্স (response) পাঠায়। যেমন- এবটি ওয়েবসাইটে অ্যাকাউন্ট তৈরি করতে চাইলে ব্রাউজারে বিভিন্ন তথ্য লিখে ব্যবহারকারী একটি বাটনে ক্লিক করেন, তখন সেই ডেটা সার্ভাারের কাছে যায় এবং সার্ভার ডেটা পরীক্ষা নিরীক্ষা করে যদি কোনো সমস্যা না পায় (যেমন- ইতিমধ্যে এই নামে একাউন্ট তৈরি করা আছে), তখন সার্ভার ব্যবহারকারীর একাউন্ট তৈরি করে এবং ক্লায়েন্টের কাছে রেসপন্স পাঠায়। আবার কোনো কারনে একাউন্ট তৈরি করা না গেলেও ক্লায়েন্টের কাছে রেসপন্স পাঠায়।

সার্ভারে যেই সফটওয়্যার চলে, সেটি সাধারণত একটি প্রোগ্রামিং ভাষা ব্যবহার করে লেখা হয়। এসব কাজের জন্য জনপ্রিয় প্রোগামিং ভাষা হচ্ছে পিএইচপি, পাইথন, জাভা, রুবি ইত্যাদি।
ব্রাউজারে যেই ওয়েব সাইট কিংবা ওয়েব অ্যাপ্লিকেশন চলে, সেখানে ব্যবহার করা হয় এইচটিএমএল (HTML) ও সিএসএস (CSS)। HTML-এর পূর্ণরূপ হচ্ছে হাইপার টেক্সট মার্কআপ ল্যাঙ্গুয়েজ (Hyper Text Markup Language)। এটি কোনো প্রোগ্রামিং ভাষা নয়, বরং একে মার্কআপ ভাষা বলা যায়। এর কাজ হচ্ছে কোনো তথ্য ব্রাউজারে প্রদর্শনের উপযোগী করা। এখানে যেসব ট্যাগ (tag) ব্যবহার করা হয়, ব্রাউজার সেগুলো বুঝতে পারে এবং সে অনুযায়ী ওয়েবসাইটে ডেটা প্রদর্শন করে।
শুধু এইচটিএমএল ব্যবহার করে ওয়েবসাইট তৈরি করা গেলেও, ওয়েবসাইটকে আরো আকর্ষণীয় ও সুন্দরভাবে উপস্থাপন করার জন্য ব্যবহার করা হয় CSS- যার পূর্ণরূপ হচ্ছে, ক্যাসকেডিং স্টাইল শিট (Cascading Style Sheet)। আধুনিক সব ওয়েবসাইটের এইচটিএমএল-এর সঙ্গে সিএসএস ব্যবহার করা হয়।
ডায়নামিক ওয়েব অ্যাপ্লিকেশনের ক্ষেত্রে সবসময়ই যে সার্ভারের কাছে ডেটা পাঠাতে হবে, এমনটি নয়। বরং অনেক কাজ ক্লায়েন্ট অংশেই করে ফেলা সম্ভব। সেজন্য ওয়েবসাইটের ক্লায়েন্ট অংশে প্রোগ্রামিং করা যায়। এই কাজের জন্য সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষা হচ্ছে জাভাস্ক্রিপ্ট (Javascript)।