Gaden har været en af de vigtige gader i det ældste København, hvor den førte fra fra kvarteret omkring Gammeltorv til havnen.
Der er flere forklaringer på gadenavnet. Én lyder, at der herfra gik en bro over til Slotsholmen. Den var forsynet med knager, så den ikke kunne bruges af vogne, men kun af de gående.
Broen kaldtes også rødbro, fordi den var rødmalet og letbro fordi den var af en lettere konstruktion end de andre broer. Indtil broen forsvandt i begyndelsen af 1700-tallet for kaldtes Knabrostræde derforfor Letbrostræde.
Navnet Knabrostræde siges imidlertid også at forvanskning af Knageryg-stræde. Gaden gik nemlig ned til magen, der var ét af byens offentlige toiletter, der lå ved Magstræde. Når man sad her i en ubekvem stilling, kunne ryggen godt “knage”.
Toilettet har måske ligget ude på en bro ved havnen (så afløbet gik lige ned i vandet), og broen kan have fået navnet Knarrebro, som har været med til at navngive gaden.