Why match request parameter using strings?

Please help to correct my understanding if i’m wrong.

From what i understand, the conn struct gets modified (the immutable sense) from going through some pre processing pipeline including the extraction of request parameters and “saving” it in conn struct. Does this mean that request parameters are “saved” in conn struct using string keys instead of atom keys? hence we are able to do a pattern match on string keys.