Article snapshot taken from Wikipedia with creative commons attribution-sharealike license.
Give it a read and then ask your questions in the chat.
We can research this topic together.
surf is intentionally limited in its set of features. The only graphical elements the browser has are the page view itself and, optionally, the scrollbars. The main functionality of the browser is implemented in third-party WebKitGTK library, and the rest of the program only provides a window and a set of XProperties to control its behavior. While surf supports cookies, it does not include some other common features of web browsers such as tabbed browsing, bookmarks or ad filtering, though all can be implemented with patches, scripts, or external programs, with instructions available in surf's homepage. Instead of an address bar, the _SURF_URI XProperty has to be set to user-requested uniform resource locator (URL) for the browser to follow it. By default, surf's configuration includes a keyboard shortcut for calling the dmenu program to prompt the user for a URL.
Most configuration of surf is performed by editing its configuration header file in its source code, and then (re)compiling it. Some settings can be changed without recompiling, via command-line arguments or hotkeys.
^ Zobnin, Eugeniy (July 2012), "Всё гениальное просто: переходим на софт проекта suckless.org" [Everything great is simple: transitioning to software from suckless.org], Xakep (in Russian), vol. 7, no. 162, pp. 106–109