(1) Based on what we have discussed in class, no, an origin web server cannot distinguish the web client that is asking for something through a proxy web server. Relevant thought: a proxy web server may serve a cached web object to multiple web clients that ask for it; so, it does not make sense to tell the origin web server which particular web client is asking.
(2) A socket is a data structure that "lives" in the transport layer. A port number is one piece of state (among others) that is associated with a socket. The standard port numbers we have discussed in class are for the web and for DNS. But you don't even need to remember those by heart. E.g., if you don't remember that the port number for the web is 80, write "the standard port number for the web." All I want is that you realize that there exist standard port numbers per protocol.