Azd*_*dle 2 c network-programming http c-strings
我正在编写一个使用HTTP进行通信的嵌入式C程序.我已经有了它的工作,但我以前没有做太多的网络,只是想确保我没有做任何非常糟糕的假设.
我可以安全地假设任何具有Content-Type类型的非恶意HTTP数据包text/<something>都不会为零吗?我的代码中有很多地方只依赖于字符串末尾的'\ 0'.我确实有一些保护措施,它会在给定的Content-Length之后一直停止,并且永远不会溢出我写入的缓冲区,但是我想尽可能地确保低级别的东西能够工作,因为一旦这些设备出货,我将无法更新这些部件.
此外,有人能指出我在网络编程中有任何共同的gottchas的资源吗?
不,即使您可以保证消息符合要求,这也不是一个安全的假设.例如,UTF-16文本几乎肯定包含NUL字节.
此外,配置不当的Web服务器(其中有很多)可能会提供gzip数据,即使您的客户端不接受它也是如此.