Retry hangs indefinitely for 503 status code

When making a GET request to a URL that returns a 503 status code, the retry strategy causes the code to loop indefinitely, regardless of whether the 503 status code is included in the status_forcelist parameter.

## Expected Result

The retry mechanism should follow the configured retry policy (e.g., retry a specified number of times) and eventually raise an error after the maximum retries.

## Actual Result

The code retries indefinitely without raising an exception or stopping.


## Reproduction Steps

```python
import requests
from requests.adapters import HTTPAdapter, Retry

url = "https://www.floraquatic.com/363-eau-de-mer-et-recifal"

session = requests.Session()
    
retry_strategy = Retry(total=3, backoff_factor=0.5, status_forcelist=[429, 500, 502, 504]) #You can add 503 here, same result is expected

adapter = HTTPAdapter(max_retries=retry_strategy)

session.mount("https://", adapter)



try:
    response = session.get(url)
    
    html_content = response.text
    
except Exception as e:
    print(str(e))

```

## System Information

    $ python -m requests.help

```json
{
  "chardet": {
    "version": null
  },
  "charset_normalizer": {
    "version": "3.4.0"
  },
  "cryptography": {
    "version": "43.0.1"
  },
  "idna": {
    "version": "3.10"
  },
  "implementation": {
    "name": "CPython",
    "version": "3.11.9"
  },
  "platform": {
    "release": "5.15.0-122-generic",
    "system": "Linux"
  },
  "pyOpenSSL": {
    "openssl_version": "30300020",
    "version": "24.2.1"
  },
  "requests": {
    "version": "2.32.3"
  },
  "system_ssl": {
    "version": "30000020"
  },
  "urllib3": {
    "version": "1.26.20"
  },
  "using_charset_normalizer": true,
  "using_pyopenssl": true
}
```

<!-- This command is only available on Requests v2.16.4 and greater. Otherwise,
please provide some basic information about your system (Python version,
operating system, &c). -->


@HamzaG737 My dear friend,
Yes, you are right. When the `Retry() `reaches its limit, it should raise a `RetryError` exception. However, regarding the issue you mentioned, I checked the responses from the URL you provided and noticed that there is a `Retry-After` header in the response, which is set to **3600** (this value is in seconds).
![retry_after](https://github.com/user-attachments/assets/453cf4bf-b539-477e-8a2e-23556fd1d093)

This value is actually set by the server in the response, indicating that you should retry after 3600 seconds.

However, what happens in your example is that the Retry() class in urllib3 has a variable called `respect_retry_after_header`, which is set to `True` by default. If we send a request to the server and the server's response contains the `Retry-After` header, **urllib3**, and consequently **requests**, will wait until this time elapses before sending the next request.

Now, what you need to do is set the value of this variable to False like this:
```python
retry_strategy = Retry(total=3, backoff_factor=0.5, respect_retry_after_header=False)
``` 

If this comment helped you and you don't have any further questions, I would appreciate it if you could close this issue.

Hello Mahdibaham, 

Thank you very much for this solution, it solves indeed my issue. I am closing this issue.