Firstly, what you say is to show the ID, in fact it's not quite like that, your url represents a file on your server, and the ID represents a parameter passed to that page. When you press ENTER on the bar of your browser, it is performing an HTTP GET request to your server, passing that ID parameter.
On this page, there is probably a code like this:
Select * from Posts where postID = $_GET["ID"]
That is, "Bring POST where ID is equal to Parameter passed in request"
Imagine if you changed the ID parameter by TitlePost, your code would probably look like this:
Select * from Posts where titPost = $_GET["TituloPost"]
Now think of me, you create a button on a certain part of your site, which redirects to your post, for example, when someone clicks a link, the address is opened;
link
But let's say you edit the title of the post to
"How to CreateLinkAmigavel"
You would have a problem, because the redirect button is set with the parameter tituloPost="How to CreateVariousLinkAmigavel".
So the maintainability of your site is extremely low.
Another situation would be more of a post having the same title, which would break the functioning of the site, where each page shows a post.
That is, there are several situations that make this practice impractical.
Is it possible to create friendly links?
Yes, it is possible to create more friendly links, however, it is strongly recommended to use the ID as a parameter, since the ID, besides being unique, represents a safe value of changes, that is, you can edit your post, title, tags, that ID will continue the same.