The only free and comprehensive online etymological dictionary of the Spanish language
haber (Verb) "to have"
12th cent. Old Spanish aver. The spelling change from aver to haber was a modern modification to more closely reflect the original Latin. Used only in the auxiliary sense since the 15th cent., supplanted as a lexical verb by tener. From Latin habere "to have," "to hold." From Proto-Italic *χab-ē 'id.' From Proto-Indo-European *ghh1b-(e)i̯- 'id.' The phonology of this word is exceptional as the presence of *b was rare in Proto-Indo-European.
Indo-European
Romance
Asturian haber, Portuguese haver, Galician haber, Catalan haver, French avoir, Italian avere, Aromanian amu, Romanian avea, Sardinian àere
Less explicable is Spanish he, from Latin habeo "I have," as the loss of the final -o is unexpected and Penny (2002) concludes was due to apocopation by analogy with words like buen and mal.
habiente (Adjective) (law) "possessing"
Borrowed from Latin habientem, accusative of habiens 'id.' From habere "to have" (see haber).
habitación f. (Noun) "habitation"
13th cent. From Latin habitatio, past participle of habitare "to inhabit." From habere "to have" (see haber) and frequentive suffix -itare (see note under faltar).
habla f. (Noun) "speech"
12th cent. Old Spanish fabla. From Latin fabula 'id.,' from fari "to talk" and instrumental sufix -bula (see -ula). Latin fari is from Proto-Italic *fā- "to talk." From Proto-Indo-European *bheh2- 'id.'
hablar (Verb) "to talk (with/to)"
12th cent. Old Spanish fablar. From Latin fabulari "to chat," from fabula "conversation," "talk" (see habla, fábula).
Indo-European
Romance
Asturian falar, Portuguese falar, Galician falar, Italian favellare, Sardinian faeddare
hacer (Verb) "to make," "to do"
11th cent. Old Spanish fere. From Latin facere 'id.' From Proto-Italic *fak- 'id.' From Proto-Indo-European *dhh1-k- 'id.' From the root *dheh1- "to put" (see dar).
Variants
Navarre fer, La Rioja fer, Aragon fer, Old Spanish far
Indo-European
Romance
Asturian facer, Galician facer, Portuguese fazer, Catalan fer, French faire, Aromanian fac, Romanian face, Sardinian fakere
Following Meyer-Lübke (1890), Old Spanish fere and its dialect variants in fer point to a stress variant in Vulgar Latin *facére that reduced to *fére while modern Spanish hacer reflects Vulgar Latin *fácere > *fácer and then remodeled to hacér in the Middle Ages. While an argument from stress variation in Vulgar Latin should raise eyebrows, it has at least one strong case in pero / peró. A further case that Vulgar Latin *fácere existed is in Old Catalan far "to make," from a pre-form *fare that must derive from a stress-heavy /a/ that caused syncopation of the interior -e-. See Rufat (2013) for further discussion from a Catalan perspective; Chambon (2013) for additional remarks.
The Dictionnaire Étymologique Roman takes a different approach, reconstructing all of the above words in a single Proto-Romance etymon, */ˈɸak‑e‑re/, except for Old Spanish far, which reflects Proto-Romance */ˈɸ‑a‑re/.
hacia (Preposition) "toward"
12th cent. Old Spanish faza; earlier faze a. From Latin facies ad "facing toward." For the etymology of facies, see haz (1); for the etymology of ad, see a.
hambre f. (Noun) "hunger"
10th cent. Old Spanish fambre, earlier famne. The n in famne was tapped by the tongue and became *famre. *b intervenes between *mr via epenthesis to become fambre. From Vulgar Latin *famine 'id.,' earlier famis, from Latin fames 'id.' Of unknown origin. A connection to *dhH- "to disappear" has been proposed, albeit with its own problems. See Walde & Hoffman (1954) for further discussion.
Indo-European
Romance
Asturian fame, Portuguese fome, Galician fame, Catalan fam, French faim, Italian fame, Aromanian foami, Romanian foame, Sardinian fàmene
In the 3rd or 4th cent. text Appendix Probi we find the line: fames non famis "[the word for 'hunger' is] fames, not famis." The author's spelling correction proves how the word was pronounced by common speakers, and offers a rare glimpse of the evolution of Latin into Romance languages such as Spanish.
Words for hunger tended to be borrowed into Indo-European languages or internally innovated. "There is only one word reconstructed in Proto-Indo-European that means 'hunger' (a Hittite-Tocharian isogloss) and even this is problematic in tha a comparison between Hit kāst- 'hunger' and Toch B kest 'hunger' still only yields a PIE *Kos-t-, i.e. we can only say that the word begins with a velar but must be uncertain which velar that is (it could be *ges- for example)." ~ Mallory & Adams, The Oxford Introduction to Proto-Indo-European and the Proto-Indo-European World (2006)
hasta (Preposition) "until"
13th cent. Old Spanish fasta, ata, fata. From Arabic ḥattā 'id.'
Borrowing of prepositions is a rare phenomenon, and the variety of different written forms in Old Spanish is troublesome. To explain how the different written forms arose from Arabic, Ford (1911) distinguishes Old Spanish fasta from ata and fata. Ata and fata, Ford explains, are more conservative borrowings from Arabic ḥattā; later, an s intruded into fata to give us fasta. Between the three words fasta alone survived, and evolved into hasta.

But is an "intrusive s" a satisfying answer? Corriente's (1983) answer is that Old Spanish speakers also utilized the Latin phrase ad ista "to this" as a preposition, and it influenced the evolution of fata by transferring its -s-. For the continued etymologies of these words, see a and éste respectively.
haya (1) f. (Noun) "beech," "beech tree"
14th cent. From Latin fagea "beech wood," an adjective from fagus "beech tree." Why the word in Spanish was drawn from the adjective fagea and not the noun fagus is rooted in the gender system of the language. Latin boasted a complex gender system where words ending in suffixes like -us could be masculine or feminine, but there was a strong tendency across Vulgar Latin speakers to simplify things by interpreting -us as universally masculine and -a as universally feminine. The names for trees in Latin, which were mostly feminine -us nouns, were reshaped to be "grammatical" in Vulgar Latin by changing the ending to -a. However, when there was a need to distinguish the tree from its fruit, Vulgar Latin speakers minted their word by drawing from the feminine adjective instead. See also Penny (2002). From Proto-Italic *fāgo- 'id.' From Proto-Indo-European *bheh2g-o- 'id.'
Also the origin of the surnames de la Haya, Hay, Hayas, Faya, and Fayos.
Indo-European
Romance
Asturian faya, Portuguese faia
Celtic
Gaulish *bāgos "beech"
Germanic
Old Norse bók "beech," Old High German buohha 'id.,' Old Saxon bōka 'id.,' Old English bōc 'id.' (English beech)
Hellenic
Ancient Greek φηγός (phegós) "oak," "acorn"