Static typing means that variables must have their types declared before they are used, while dynamic typing allows variables to hold values of any type. As for web development, it mostly depends on personal preference and project requirements. Python and Ruby are popular dynamic languages, while Java and C# are commonly used static languages.