---
title: "Conditional GET; 3-tier architecture components"
subject: "Internet and Intranet"
chapter: 4
key: "semester_8/internet_and_intranet:conditional-get-3tier"
source: https://www.bctengineer.com/q/semester_8/internet_and_intranet/conditional-get-3tier
site: BCT Engineering
---

# Conditional GET; 3-tier architecture components

Internet and Intranet · Chapter 4: HTTP and the Web Services

- Asked in: 2073 Magh, 4+4 marks
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_8/internet_and_intranet/conditional-get-3tier
- Whole chapter: https://www.bctengineer.com/md/semester_8/internet_and_intranet/chapter-4

## Question

Explain the role of conditional GET in web browsing? What are the essential components of 3-tier client/server architecture?

## Short answer

A conditional GET uses If-Modified-Since or If-None-Match to check freshness; the server returns 304 Not Modified if unchanged, saving bandwidth and time. The 3-tier architecture separates presentation (client), application logic (middle tier), and data (database) for scalability and security.

## Answer

#### Conditional GET

A **conditional GET** lets a cache (browser or proxy) check whether its stored copy of an object is still current, so the server need not resend the object if it has not changed.

**Operation**
1. The first time, the server sends the object with a header `Last-Modified: Wed, 9 Sep 2020 09:23:24` (or an `ETag`). The cache stores the object with this date.
2. Later, when the user requests it again, the cache sends a GET with `If-Modified-Since: Wed, 9 Sep 2020 09:23:24` (or `If-None-Match: <etag>`).
3. If unchanged, the server replies `304 Not Modified` with an empty body. The cache uses its local copy.
4. If changed, the server replies `200 OK` with the new object.

```text
 Cache                               Server
   |-- GET obj, If-Modified-Since -->|
   |<-- 304 Not Modified (no body) --|   (unchanged)
   |<-- 200 OK + new object ---------|   (changed)
```

**Role:** saves bandwidth and server load, reduces response time, and still guarantees the user gets an up-to-date page.

#### Components of 3-tier client/server architecture

The application is divided into three logical layers, which may run on different machines.

1. **Presentation tier (client):** user interface such as a browser or GUI; accepts input and displays results.
2. **Application / business logic tier (middle tier):** web/application server that processes requests, applies business rules and talks to the database (PHP, Java servlets, ASP.NET).
3. **Data tier (database server):** stores and manages data (MySQL, Oracle); handles queries and transactions.

```text
 [Browser] <--HTTP--> [App/Web server] <--SQL--> [Database]
 Presentation         Logic                      Data
```

Advantages: better scalability, easier maintenance, security (clients never reach the database directly), and independent upgrading of each tier.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What is the role of conditional GET?
   A. To let a cache check if its copy is current so the server need not resend an unchanged object
   B. To upload a file
   C. To authenticate users
   D. To create cookies
   Answer: A. It saves bandwidth and server load and response time while still ensuring an up-to-date page. (Key point: Conditional GET purpose)

2. Which header and response code are used when the object is unchanged?
   A. If-Modified-Since in request; 304 Not Modified with empty body
   B. Set-Cookie; 200 OK
   C. Host; 404
   D. If-Modified-Since; 200 OK with full object
   Answer: A. The cache sends If-Modified-Since (or If-None-Match); an unchanged object yields 304 Not Modified and the cache uses its local copy. (Key point: Header and response)

3. What are the three tiers?
   A. Presentation (client), application/business logic, data (database)
   B. Network, transport, application
   C. Browser, proxy, DNS
   D. Client, router, switch
   Answer: A. The tiers are the user interface, the logic/application server, and the database server. (Key point: 3-tier layers)

4. Which is an advantage of 3-tier architecture?
   A. Clients access the database directly
   B. Better scalability and security, as clients never reach the database directly, and tiers can be upgraded independently
   C. All tiers must run on one machine
   D. No middle server is needed
   Answer: B. Separating tiers improves scalability, maintenance and security. (Key point: Why 3-tier)

## Related in Internet and Intranet

- [Client/server architecture and FTP operation](https://www.bctengineer.com/question.md?key=semester_8%2Finternet_and_intranet%3Aclient-server-ftp) — Internet and Intranet, chapter 3
- [XML and JavaScript for client-side web apps](https://www.bctengineer.com/question.md?key=semester_8%2Finternet_and_intranet%3Axml-javascript-client-side) — Internet and Intranet, chapter 6
- [HTTP request methods; web server and virtual hosting](https://www.bctengineer.com/question.md?key=semester_8%2Finternet_and_intranet%3Ahttp-methods-config-virtual-hosting) — Internet and Intranet, chapter 4
- [N-tier challenges and tiered ISP backbone](https://www.bctengineer.com/question.md?key=semester_8%2Finternet_and_intranet%3An-tier-challenges-tiered-isp) — Internet and Intranet, chapter 1

## Related in other subjects

- [Web architecture and web-tier components](https://www.bctengineer.com/question.md?key=semester_7%2Fweb_technology%3Aweb-architecture-tiers) — Web Technology, chapter 2
- [Server side languages and multi-tier architecture](https://www.bctengineer.com/question.md?key=semester_7%2Fweb_technology%3Aserver-side-languages-multitier) — Web Technology, chapter 3
- [Features of client/server architecture](https://www.bctengineer.com/question.md?key=semester_7%2Fcomputer_networks_and_security%3Aclient-server-features) — Computer Networks and Security, chapter 1
- [Architecture before specification; client-server](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Aarchitecture-before-specification) — Software Engineering, chapter 3
