Selenium is a automation testing framework for web pages. as it states in their web site is just "automates browsers". so say you have a website and you want to test it, then you need selenium. you have some options if you're new to Selenium. Selenium IDE, which comes in as a browser plugins (Firefox and Chrome). it's like a recorder. you lunch it, then you nviagte to the website under the test. you interact with the site i.e. click on links, fill forms, go back and forth etc. it records all of that. after that you can play it back, so see the interaction. but you don't have the options to export the whole scenario as a test file in your language of choice. you need other plugin to achieve that (Katalon Recorder). however, using method like this is only good for start. it just gives you an idea how it works. for serious, testing and development, you need to look into using selenium framework in your testing environment. it can be done in any programming language. if you use java, then you just get the required packages into your project. so if you have a maven project, then get it from maven repository page, put it into your pom and start coding against it to automate testing your website. or if you're into .Net, then you just download the required nuget packages into your project and start writing your tests. there are some design patterns and conventions needs to be followed if you want to do a proper testing, like page object model, annotation etc.
Now, Specflow is a different thing. it can be used in combination with selenium. it is just gives you more readable scenarios for your testing, then you can write your tests matching those scenarios steps.
Specflow is the .Net implementation of Cucumber(Java and others).
this was a short summary of Selenium and Specflow, however it is a big area to just cover in one post. I think you have enough to look into it, if you are mindful about BDD and testing in general.