The server processes the request and returns the result. When an operation wants both a file name and a file handle, the file handle usually points to the directory the file name is in. In addition, many NFS operations return data created or modified by the operation. File handles are 32-byte opaque cookies that have meaning only to the NFS server. Most NFS servers fill cookies with data like hostname, inode number, etc., in a conventional order, but Pgfs doesn't follow this convention.
File names contain only the rightmost path name component.
Full path names are not used because a path contains a path name separator, and path name separators vary between operating systems. To make NFS operating system-independent, path separators have been engineered out of the protocol. Some data fields that are normally positive values like userid and mtime may contain -1, which means to use existing values from sensible places. An NFS server will believe any values you hand it in a packet for userid and groupid, even if you're wearing a black hat. Generating arbitrary NFS packets is most easily done by using a Linux you have root access on and su'ing to the user and group you want your requests to come from.