There are a lot of causes for headaches.
Milk is a common allergen that most people are not aware because the symptoms are so easy to misinterpret.
Dehydration is another common headache cause but it sounds like you get enough water. Another can be not eating often enough or enough protein.
Allergies (of many types) can cause headaches. You can typically rule these out pretty simply. When you have a headache press the bridge of your nose firmly. When you release, if you feel a sensation, then it is allergies. You can also touch between your eyes and under your eyes by your nose, if tender then it is allergies. If you don’t have these symptoms allergies becomes less of a threat but is still possible.
Eyeglasses are needed for many people. As a young girl I got frequent headaches until the doctors realized I needed eyeglasses. It was only a minor eyesight problem but still caused me headaches.
TMJ can also cause headaches. It is a jaw problem. When you sleep at night your jaw becomes too tense. A dentist can usually predict this but may miss it.
Stress and Tension can also cause headaches.
Hormones can cause headaches. For many women menstruation triggers a hormone shift that causes headaches, this can also be triggered during ovulation.
Allergies to foods as well or even preservatives in food. Fast food especially.
Medications and sleep disorders can cause headaches.
High blood pressure and other medical issues can also cause headaches.
Certain smells can cause headaches (like someone wearing too much perfume).
To determine what is causing your headaches you keep a headache diary. Record when you have the headache, what your environment was when it occurred, and what you were doing/eating when it occurred. It is likely you will see a commonality. Your doctor will also find this useful.