HTTP, HTTPS ও TLS: ওয়েবসাইট খুললে কী ঘটে
URL লিখলে এক সেকেন্ডেরও কমে অনেক কিছু ঘটে। পুরো যাত্রা অনুসরণ করে প্রতিদিন যে অংশগুলোর মুখোমুখি হবেন তা শিখুন।

https://example.com/page খুললে এক সেকেন্ডের ভগ্নাংশে কয়েকটি জিনিস ঘটে। ধাপগুলো জানলে প্রায় যেকোনো web সমস্যা debug করা সহজ হয়।
একটি request-এর যাত্রা
১. DNS lookup: example.com-এর IP address খোঁজা।
২. TCP সংযোগ: browser সেই IP-র port 443-এ সংযোগ খোলে (তিন-ধাপের handshake)। HTTP/3 এর বদলে UDP-র ওপর QUIC ব্যবহার করে।
৩. TLS handshake: browser ও server এনক্রিপশনে একমত হয়, server certificate দিয়ে নিজের পরিচয় প্রমাণ করে, এবং দুজনেই session-এর key তৈরি করে।
৪. HTTP request: browser এনক্রিপ্টেড সংযোগে request পাঠায়।
৫. HTTP response: server status, header ও body (HTML, JSON, ছবি) দিয়ে উত্তর দেয়।
৬. Browser HTML পড়ে আরও ফাইল (CSS, script, ছবি) চায়, প্রায়ই একই সংযোগে এর অনেকটা পুনরাবৃত্তি হয়।
HTTP দেখতে কেমন
একটি request:
GET /page HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Cookie: session=abc123
একটি response:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: max-age=3600
Set-Cookie: session=abc123; Secure; HttpOnly; SameSite=Lax
<!doctype html>...
Method
- GET: কিছু পড়া। data বদলানো উচিত নয়।
- POST: কিছু বানানো বা data জমা দেওয়া।
- PUT ও PATCH: প্রতিস্থাপন বা আংশিক হালনাগাদ।
- DELETE: মোছা।
- HEAD ও OPTIONS: মেটাডেটা ও সক্ষমতা (OPTIONS CORS যাচাইয়ে ব্যবহৃত হয়)।
Status code
| পরিসর | মানে | উদাহরণ |
|---|---|---|
| 2xx | সফল | 200 OK, 201 Created, 204 No Content |
| 3xx | Redirect | 301 স্থায়ী, 302 অস্থায়ী, 304 Not Modified |
| 4xx | Client ভুল | 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests |
| 5xx | Server ভুল | 500 Internal Error, 502 Bad Gateway, 503 Unavailable, 504 Gateway Timeout |
দ্রুত নিয়ম: 4xx মানে request-এ সমস্যা, 5xx মানে server-এ। 502 বা 504 সাধারণত মানে proxy তার পেছনের অ্যাপ থেকে ভালো উত্তর পায়নি।
গুরুত্বপূর্ণ header
- Content-Type: body কী।
- Cache-Control, ETag: উত্তর কতক্ষণ ও আদৌ পুনর্ব্যবহার করা যাবে কি না।
- Cookie ও Set-Cookie: অবস্থা ও session।
- Authorization: credential বা token।
- Location: redirect কোথায় যায়।
- নিরাপত্তা header:
Strict-Transport-Security,Content-Security-Policy,X-Content-Type-Options।
HTTPS কী দেয়
HTTPS হলো TLS-এর ভেতরে HTTP। এটি দেয়:
- গোপনীয়তা: network-এর অন্যরা traffic পড়তে পারে না।
- অখণ্ডতা: data অলক্ষ্যে বদলানো যায় না।
- পরিচয় যাচাই: আপনি আসল server-এর সাথে কথা বলছেন, বিশ্বস্ত certificate authority (CA) স্বাক্ষরিত certificate দিয়ে প্রমাণিত।
এটি নিজে কোনো সাইটকে বিশ্বস্ত বা নিরাপদ করে না। phishing সাইটেও HTTPS থাকতে পারে। তালার মানে সংযোগ ব্যক্তিগত, মালিক সৎ নয়।
Certificate সংক্ষেপে
Certificate একটি ডোমেইন নামকে public key-র সাথে বাঁধে। Browser যাচাই করে এটি বিশ্বস্ত CA-র স্বাক্ষরিত, ডোমেইনের সাথে মেলে এবং মেয়াদ শেষ হয়নি। Let's Encrypt বিনামূল্যে certificate দেয় ও স্বয়ংক্রিয়ভাবে নবায়ন করে।
HTTP সংস্করণ
- HTTP/1.1: প্রতি সংযোগে একবারে একটি request (browser কয়েকটি খোলে)।
- HTTP/2: এক সংযোগে অনেক request একসাথে, header compression-সহ।
- HTTP/3: QUIC-এর ওপর চলে, যা দুর্বল network-এ সংযোগের দেরি কমায়।
সাধারণ error
- Certificate মেয়াদোত্তীর্ণ বা নাম না মেলা: নবায়ন করুন বা ডোমেইন নাম ঠিক করুন।
- Mixed content: HTTPS পেজ সাধারণ HTTP-তে কিছু লোড করে, তাই browser আটকায়।
- অতিরিক্ত redirect: redirect loop, প্রায়ই HTTP ও HTTPS rule-এর দ্বন্দ্ব।
- CORS error: server অনুমতি দেয়নি বলে browser cross-origin উত্তর আটকেছে।
নিজে চেষ্টা করুন
curl -I https://example.com # শুধু response header
curl -v https://example.com # TLS ও HTTP আদান-প্রদান দেখুন
প্রতিটি request, তার সময় ও header দেখতে browser DevTools-এর Network ট্যাবও খুলুন।
মূল কথা: পেজ লোড মানে DNS, তারপর TCP, তারপর TLS, তারপর HTTP। HTTPS গোপনীয়তা, অখণ্ডতা ও server-এর পরিচয় দেয়, status code বলে সমস্যা কোন পক্ষে, আর curl ও DevTools আসলে কী ঘটছে দেখায়।
Networking ও Cloud সিরিজ, পর্ব ১ (ইন্টারনেট কীভাবে চলে): 3 নম্বর (মোট 5)। আগের লেখা: DNS সহজ ভাষায়: record, resolution ও সাধারণ সমস্যা.


