Mainframe -> form based terminals
Minicomputers (multiple servers) -> Terminals with flexibility in their formatting
Personal computers (combined terminal + compute)
Server farms (lots of servers) -> Thin X servers / Citrix style clients
Server farms (lots of servers) -> Web Browser (software implementation of a terminal with very flexible formatting)
Surprisingly, I wrote about it in BYTE Magazine back in the day (like in 1984) about how "intelligence" (which was code for programmability) in remote nodes lead to a separation of computation and presentation. There is a tremendous bandwidth advantage if you do it this way (sending text is less bandwidth than sending bitmaps or compressed video streams).