A program that renders is a browser.
Only according to you.
application function of caching
Why would you assume caching is an application function? Caching is not necessarily an application function at all. All layers of a program stack does caching.
Then Lynx is a rendering engine, but not a browser, because the last time I used it, it didn't have bookmarks.
Your logic is flawed. I never said browsers need bookmarks to be a browser, but bookmarks if available would typically be an application level construct and therefor be controlled by the application. You implication that I said all browsers must have bookmarks is just plain wrong.
Oh, and my Android phone will save bookmarks, even if you delete all the browsers off it.
That's nice. And this has what to do with anything?
As a reference, I refer you to the standard OSI model for networking, which has seven layers:
Physical (Layer 1)
This layer conveys the bit stream - electrical impulse, light or radio signal -- through the network at the electrical and mechanical level. It provides the hardware means of sending and receiving data on a carrier, including defining cables, cards and physical aspects. Fast Ethernet, RS232, and ATM are protocols with physical layer components.
Layer 1 Physical examples include Ethernet, FDDI, B8ZS, V.35, V.24, RJ45.
Data Link (Layer 2)
At this layer, data packets are encoded and decoded into bits. It furnishes transmission protocol knowledge and management and handles errors in the physical layer, flow control and frame synchronization. The data link layer is divided into two sub layers: The Media Access Control (MAC) layer and the Logical Link Control (LLC) layer. The MAC sub layer controls how a computer on the network gains access to the data and permission to transmit it. The LLC layer controls frame synchronization, flow control and error checking.
Layer 2 Data Link examples include PPP, FDDI, ATM, IEEE 802.5/ 802.2, IEEE 802.3/802.2, HDLC, Frame Relay.
Network (Layer 3)
This layer provides switching and routing technologies, creating logical paths, known as virtual circuits, for transmitting data from node to node. Routing and forwarding are functions of this layer, as well as addressing, internetworking, error handling, congestion control and packet sequencing.
Layer 3 Network examples include AppleTalk DDP, IP, IPX.
Transport (Layer 4)
This layer provides transparent transfer of data between end systems, or hosts, and is responsible for end-to-end error recovery and flow control. It ensures complete data transfer.
Layer 4 Transport examples include SPX, TCP, UDP.
Session (Layer 5)
This layer establishes, manages and terminates connections between applications. The session layer sets up, coordinates, and terminates conversations, exchanges, and dialogues between the applications at each end. It deals with session and connection coordination.
Layer 5 Session examples include NFS, NetBios names, RPC, SQL.
Presentation (Layer 6)
This layer provides independence from differences in data representation (e.g., encryption) by translating from application to network format, and vice versa. The presentation layer works to transform data into the form that the application layer can accept. This layer formats and encrypts data to be sent across a network, providing freedom from compatibility problems. It is sometimes called the syntax layer.
Layer 6 Presentation examples include encryption, ASCII, EBCDIC, TIFF, GIF, PICT, JPEG, MPEG, MIDI, HTML.
Application (Layer 7)
This layer supports application and end-user processes. Communication partners are identified, quality of service is identified, user authentication and privacy are considered, and any constraints on data syntax are identified. Everything at this layer is application-specific. This layer provides application services for file transfers, e-mail, and other network software services. Telnet and FTP are applications that exist entirely in the application level. Tiered application architectures are part of this layer.
Layer 7 Application examples include WWW browsers
As defined above, the HTML rendering engine is clearly a layer 6 component AKA "Presentation", while IE is clearly level 7 AKA "Application", as any decent architect, designer, or programmer would tell you. Now I'll leave as you clearly have absolutely no idea what you are talking about.