Answering your specific questions first:

First red line: look at the variable name: "postData" - this is the data that you will be POSTing to the resource you are requesting.
Second red line: this creates the request, and the string is the URL of the resource you are requesting (i.e. "the page you are going to get the data for")
Point 1: You are going to send the data you set up in the first red line in the request. After the first red line, it converts the string to a byte representation that it later uses for the content of the request.
Third red line: this is not related to timing out the request. It's the HTTP keep=alive flag. If this is true, then it is instructing the client and server to keep the TCP connection open for subsequent requests.
Fourth red line: The content type will change depending on what the content is. Normally you wouldn't need content (GETs); when you are sending content, it will be determined by the type and format of the content.
Fifth red line: Certain websites may depend on the referer header, but since it can be easily spoofed and is sometimes not present, it isn't good practice to rely on it being there for proper operation of the site.
Sixth red line: The content of the request is the POST data. The Subsequent lines set up the "Request Stream" to contain the byte array. This is what the content length header is referring to.

I think you need to perhaps read up on the architecture of the web - what is a Resource, what do the different HTTP methods mean, etc. You're showing a bit of confusion on some of the basics.