Why the put and delete method need methodoverride?

What I mean is, why just let the put and delete as same as get and post,

they are all http method, when I want use put and delete,

I have to do some special trick, like use methodoverride,

Is there some technical problem about letting the same?

Are the PUT, DELETE, HEAD, etc methods available in most web browsers?

Why don't the modern browsers support PUT and DELETE form methods?

to sum it up: not all browsers support sending requests other than GET and POST, nor do all server software support other verbs than GET, POST and HEAD.