Even though both terms are used interchangeably, there is a difference between the terms Latino vs Hispanic.
The usage of both terms has changed and adapted itself to a wide range of geographical and historical circumstances. The term that was used first was Hispanic.
“Hispanic” is a narrower term which only refers to persons of Spanish-speaking origin or ancestry, while “Latino” is more frequently used to refer more generally to anyone of Latin American origin or ancestry.
So, the term Latino includes people from Mexico, the Caribbean (Puerto Rico, Cuba, Dominican Republic), South America (Ecuador, Bolivia, Colombia, Peru, etc.) and Central America (Honduras, Costa Rica, etc.)
The term Hispanic includes persons from Spain and Spanish-speaking Latin Americans but excludes Brazilians (who speak Portuguese).
On the other hand, the term Latino excludes persons from Spain but includes Spanish-speaking Latin Americans and Brazilians.
Both Hispanic and Latino are generally used to denote people living in the United States with Spanish-speaking descent. Outside of the United States we don’t speak of Latinos; we speak of Mexicans, Cubans, Brazilians, and so forth.
The term Hispanic is derived from the Latin word for “Spain” (Hispania).
Latino is derived from the Spanish word for “Latin” (Latino) but which as an English word is probably a shortening of the Spanish word Latinoamericano, which in English means “Latin American.”
History in the US
The term Hispanic was first adopted by the United States government during the administration of Richard Nixon. It has been used in the U.S. Census since 1980.
The government adopted the term Latino in 1997, and it was used in the 2000 census because of its popularity. The government adopted these terms because they did not have an inclusive term to identify and segregate the mixed white with black and native mestizo or mulato people of Central and South America.
Some Hispanics in the western United States preferred the term Latino, therefore the term was changed to Hispanic or Latino.
“Hispanic” is used more often in states such as Florida and Texas and the East, whereas “Latino” is used more often on the West Coast and especially California.
Here’s a little more on the topic, with a nice flag chart.
As a person from Mexico, I fit into both terms, and have called myself both Latina and Hispanic but only in the US or when speaking English. I probably use the term Hispanic more, or I just say that I am from Mexico. Depends on the context and the type of conversation.
I feel like Latinos are Americans with Latin ancestry, whether they were born in the US or not. Like this poll demonstrates:
Do you prefer Latino, Hispanic or either? If you are not one, which term do you use more often?
The adoption of the term Latino by the US Census Bureau in 2000 and its subsequent media attention brought about several controversies and disagreements, specifically in the United States and, to a lesser extent, in Mexico and other Spanish-speaking countries. Regarding it as an arbitrary generic term, many Latin American scholars, journalists and organizations have objected to the mass media use of the word “Latino”, pointing out that such ethnonyms are optional and should be used only to describe people involved in the practices, ideologies and identity politics of their supporters. They argue that if Hispanic is an imposed official term, so is Latino, since it was the French who coined the expression Latin America (Amérique latine) to refer to the Spanish, French, and Portuguese-speaking countries of the Western Hemisphere, during their support of the Second Mexican Empire. (source)