Set theory is a branch of mathematics that deals with sets, which are collections of objects. Set theory, together with logic, are the foundations of all mathematics.
Set theory was initially developed in the late 1800s by the German mathematician Georg Cantor and others. This initial development is now called "naive set theory". Attempts were made to axiomize this set theory in the late nineteenth century, in order for it to be one of the foundations of mathematics; however, some paradoxes, most notably Russell's Paradox, were discovered, that caused significant problems.
Following the discovery of these paradoxes, several axiom systems were proposed to create a set theory that is free from paradoxes. These systems place restrictions on how sets can be defined to avoid paradoxes such as Russell's Paradox. The system that has become the standard form of axiomatic set theory is known as Zermelo-Fraenkel set theory, or ZFC for short (where the C in ZFC comes from will be explained below). ZFC has the following axioms. Here is a list of them, described informally:
The last axiom, the axiom of choice, was originally more controversial because it was nonconstructive; it asserts that a certain function exists but does not provide a way of constructing it, especially since the axiom would also apply to uncountably infinite sets (the Banach-Tarski paradox illustrates possible issues with using the axiom of choice). For that reason, Zermelo-Fraenkel set theory without the axiom of choice is sometimes used, and abbreviated ZF, while ZFC stands for Zermelo-Fraenkel set theory including the axiom of choice. However, most mathematicians accept the axiom of choice nowadays.
You'll notice that none of the axioms state that, for any property, it is possible to define a set of all things that satisfy that property. Permitting such definition would lead to paradoxes such as Russell's paradox. The axiom of subsets in ZFC is weaker and allows such paradoxes to be avoided.