Proper method of receiving UART packet data far exceeding RX buffer size?

As a starting point why not read the incoming data as it arrives until you find the header and only then save it to an array as each byte arrives ?