So many attempts of defining, and so many diverse results AND subjective
opinions, which is not what we are looking for when seeking a definition, so let's have a base on the "actual" dictionary that defines it as:
"Ethnic slur for a white person."
For what's about its origin, the word is derivated from the word "hunky" that a pejorative slur to refer to East European migrants, most of them being from the working-class, this term was used to stigmatise them as a group, so a mix or racism and
xenophobia. It
eventually became the word "honky" to refer to
white people in general in the afro-american language.
Now, how offensive is it? Cause yeah all insults aren't equivalent — and I wouldn't recommand to say it out loud in the street to verify. According to the dictionary again, this is a "double red exclamation mark" slur, to give an idea, the dictionary uses three levels:
Single orange exclamation mark — Single red exclamation mark — Double red exclamation mark.