If you use public WiFi, you need a VPN. You can pay to use a commercial solution, or you can set one up in your own home for free. The problem with using public WiFi is that any data you send to an HTTP website is in the clear and available for anyone to read. A VPN encrypts your web traffic from your phone/desktop and sends it to the VPN server. Your traffic then proceeds to its destination encrypted or not based on if you're visiting a website over HTTP or HTTPS. The important part is VPNs make it so that no one sitting in the same cafe as you can snoop on your web traffic. Finally, VPNs can also be used to access location-locked services like Netflix even when you're travelling abroad. When you use a VPN, it's just like you're browsing the web from your home.
Setting up a VPN on a Raspberry Pi is a convoluted and difficult process. First, you have to install VPN software on your Raspberry Pi. Then you have to create VPN keys for each individual device you want to connect to your VPN (laptop, cell phone, tablet, etc.) Then you have to install VPN client software on every single device, configure the keys for each individual device, and remember to connect to your VPN every time you head out.
Luckily, the folks at Digital Ocean have made a great writeup on exactly this topic. Their instructions are for Ubuntu 16.04, but they work equally well on a Raspberry Pi. Check out Digital Ocean's instructions on how to set up a VPN.
Photo by Vladimer Shioshvili