right now its the same. We currently have 2 approaches to solve the same problem:
https://github.com/scrapy/scrapy/blob/master/scrapy/contrib/spidermiddleware/offsite.py#L42
https://github.com/scrapy/scrapy/blob/master/scrapy/utils/url.py#L21
Which one will stay and which one will be removed ?