GET /path/file.html HTTP/1.1
which is correct, corresponding to http://www.example.com/path/file.html; such lines result in a 200 status code and everything's good. But then I have other entries
GET http://www.example.com/path/file.html HTTP/1.1
GET http://www.othersite.net/ HTTP/1.1
which would correspond to something like http://www.example.com/http://www.example.com/path/file.html or http://www.example.com/http://www.othersite.net/ which do not exist. (My server returns a 404 for these.) These requests are always from far away (Italy, Latvia, ...) while actual users of my website are invariably local. What are these? Is there any particular reason for these requests? Have others seen these happen?
It's been going on for at least a year and it's continuous (though I'm not being flooded).
These aren't transparent attacks like
GET //mysql-admin/ HTTP/1.1
GET /webdav/test HTTP/1.1
but they're too common to be confused people playing with HTTP manually.