Based on HTTP's definition of PUT, your first request is overwriting the list of players with a new list that contains just one player name. It is not adding to the list of players.
The second option does not really make much sense to me. Doing PUT without a body is not really consistent with the meaning of PUT.
Considering that one of the standard definitions of POST is to append to an existing resource, I'm not sure why you wouldn't do
POST /players
{ "name": Gretzky }
If you are sure that all you player names are going to be unique then you could use PUT like this:
PUT /player/Gretzky
{ "name": Gretzky }
When you decide to do REST on HTTP you are agreeing to use HTTP in the way that is defined in RFC2616. That's what the uniform interface constraint means.
And just to be pedantic, there is no such thing as a REST URL and you can't test either option in a browser because without javascript, you can't do a PUT in a browser.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…