What is middleware?
Middleware is a framework of hooks which works as a ‘plugin’ between Django’s request/response processing. In other words a middleware is a callable that takes a request and returns a response just like a view. Each middleware component is responsible for doing some specific task.
In simple word middlewares are Mediators between client & view.
Let me clear the concept with an example:
Suppose you want to send a letter to your best friend through a post office. You completed the letter & went to post office, but post master told you that you didn't follow the perfect rules to send a letter. Then you corrected it. After that the postmaster received it & sent it to the post office nearer to your friends home. A postman will take the letter from there & deliver it to your friends home. Here, a problem can be happened too. If you make mistake in writing the address then it won't be possible to deliver. But if everything is okey the letter will be delivered on time. Then by following the same procedure your friend can send you a response.