Smart city applications demand lightweight, efficient and dependable communication protocols to facilitate the functioning of resource-limited Internet of Things (IoT) devices. This work performs an extensive empirical study of the three most prominent IoT standards; Message Queuing Telemetry Transport (MQTT), the Constrained Application Protocol (CoAP) and Hypertext Transfer Protocol (HTTP) by emulating real-world smart city use cases using a Raspberry Pi based testbed. The primary metrics based on which the protocols are analyzed are latency, message overhead, delivery rate and energy consumption. ANOVA and Tukey's HSD tests are used to determine the statistical significance of experimental data. The test results indicate that CoAP under (QoS-1 reliability) shows the least latency and energy consumption and MQTT due to its support for Quality of Service (QoS) is the most reliable. Among the others, HTTP is in general performance terms certainly at the bottom of all metrics mainly for its verbosity and synchronous nature. The paper then also suggests a decision flowchart for developers to choose the suitable protocol according to application requirements. The results are more than just numbers on a graph, and the research can be deployed for advice for protocol selection in practice, where this study helps identify issues with encryption overhead (over 75\%) while showcasing multi-hop network scalability and adaptive switch mechanisms as areas that remain to be resolved. Such findings can be used as a basis for design approaches to construct secure, efficient and scalable communication protocols in urban IoT settings.