HTTP协议中的关键字是否始终以英文形式传输?
HTTP请求方法与头部关键字必须用英文发送
- 答案很明确:GET、POST这类请求方法,Host、Cookie这类请求头的字段名,必须严格用英文发送,绝对不能翻译成其他语言。
- 原因很简单:HTTP是有明确RFC标准的文本协议,所有规范里的关键字都是英文定义的。不管是浏览器、curl这类客户端,还是Nginx、Apache这类服务器,全都是照着这个标准实现的,只认英文的关键字。
- 举个实际例子:要是你把请求行写成
获取 / HTTP/1.1,服务器直接就给你返回400错误,根本识别不了这个非标准的请求方法;再比如把Host: example.com改成主机: example.com,服务器也没法解析这个头部字段,通信直接失败。 - 另外要分清:关键字和字段值是两回事。比如Host头部的值(像
example.com)、Cookie里的内容可以是多语言的,但字段名本身必须是英文的。
内容的提问来源于stack exchange,提问作者jefftrotman
相关产品推荐
相关产品推荐

