My ignorance in the field of streaming things online has bothered me for ages but I've been too lazy to post about it. There's quite a lot I want to know, since I find it all very fascinating.
1.) When a video streams, what exactly is going on? Is the computer simply taking bits of information at a time and storing them temporarily as they play, or is it actually relying entirely on another computer and just acting as a medium in which to show you?
2.)Similar to the question above, how does...well, everything else work? As far as pictures and such... when you access a website with pictures and text, are the pictures and text temporarily saved to your computer while you view them? Or does the explorer simply show you pictures and text stored on another computer without the need to temporarily store them? Does this process vary depending on the file medium?
Sorry for packing so many questions into one post but my fundamental misunderstanding of how the internet works has been driving me crazy lately.
Pretty much anything you see on the web always relies on a remote computer ("web server") sending you something
, and your computer displaying or rendering that something. You need to be connected to the internet because the things you want to see are on the web servers, and you need to have a computer (rather than, for example, just a monitor and keyboard connected directly to the modem) to figure out how to display the things you receive.
Now in principle, the web server could just send you "this is what your screen should look like" and an image that you just splatted directly to the monitor (or to be more precise, to the video memory in your graphics card). Essentially a constant video stream sent just to your computer. And in that case you might not even need a computer, or at least not a very advanced one: this is often called a terminal
system. That's how VNC works (where you can control a computer remotely from another computer). But it would take a lot of bandwidth, be very inflexible between different screens and computers, and cause a long lag any time you wanted to scroll, or hover over a link, or do anything else that would update the screen. And it would be a ton of extra work for the web servers. So what they do instead is to just send you the data and say "you figure out how to display this", and then your browser interprets it and renders the screen locally. That's why the same web page can look slightly different in different browsers, and also allows you to do things like change the font size without bothering the web server.
Web pages are sent as text files in HTML format, and you can just save them if you want to look at them when you're off-line (though links between different pages may not work because they're pointing to the internet address instead of the local copy, and interactive stuff that involves talking to the server, like the buttons on this page to post the message I'm writing, obviously won't). Images are sent as image files, just like the ones saved on your computer.
With video streaming, they could
send each image and the sound constantly, and your computer would just have to put it on the screen and send it to the speakers, but again, that would be very inefficient, and if any of the images or sound bits got lost it would ruin the video. (And messages get lost all the time
on the Internet; it's just that the system is smart enough to detect when it happens and send it again until it gets through.) So instead they send little chunks of the video file (in order) and lets your browser figure out how to decode and render it. So you can take the same video and make it full-screen, for example. That's also why sometimes some videos won't play on some systems (like the iPhone had trouble with a lot of videos for a long time), because they don't know how to render it. The server keeps sending you the next chunks of the video as fast as you're playing them (or even faster, and then the browser just keeps them in a buffer until it's time to play them), but if you jump around too much in the video you have to ask it to send you the bits from the part you jumped to.
So the web server sends you text, images and chunks of video, and the browser keeps those things in memory while it needs to display them. Then it either throws them away, or saves them to files on your computer. Anything you see on the Internet has been sent to your computer and can be saved if you want to, but it won't always work by itself. For example, you can save the Google homepage as a file, but it won't let you do Google searches offline because every search involves talking to the Google servers.