Both modes produce percent codes, but they treat the characters that structure a URL (: / ? & = #) differently, and picking the wrong one breaks the link.
Side by side
| Component | Full URL | |
|---|---|---|
| Encodes : / ? & = # | Yes | No, left as they are |
| Encodes spaces and accents | Yes | Yes |
| Use for | A query value or one piece of a URL | A complete, already-formed address |
| Result still works as a link | No, if applied to a whole URL | Yes |
The same input
Input: https://example.com/a b?q=café&x=1
- Component:
https%3A%2F%2Fexample.com%2Fa%20b%3Fq%3Dcaf%C3%A9%26x%3D1 - Full URL:
https://example.com/a%20b?q=caf%C3%A9&x=1
Which to choose
If you have a complete address with a space or accent in it and want a safe link, use full. If you are inserting text into a URL, for example a search term or a URL passed as a redirect parameter, use component, otherwise an ampersand in the value would split it into two parameters. Try both in the URL Encoder/Decoder and see how to URL encode and decode.