Java Web基础与实例教程
上QQ阅读APP看书,第一时间看更新

1.3.2 HTTP的本质

HTTP定义了浏览器与Web服务器之间交换超文本数据的协议。协议指的是一套规则。通过HTTP,浏览器可以向服务器发送任意类型的请求数据(例如浏览器向服务器上传图片),服务器可以向浏览器发送任意类型的响应数据(例如浏览器从服务器下载视频),数据发送方在请求头或响应头中指定Content-Type,数据接收方即可根据该Content-Type正确地解析接收到的数据。需要注意,HTTP要求请求数据中的请求头以及响应数据中的响应头必须是ASCII文本数据。也就是说,汉字必须被编码成ASCII编码,才能存在于请求头或响应头中。例如,请求头中的汉字需要被URL编码成ASCII编码。URL编码的相关知识读者可参考2.4.2章节的内容。

ASCII是一种标准的单字节字符编码方案,到目前为止一共定义了128个字符。汉字非常多,单字节字符编码方案不足以表示所有汉字,因此汉字有必要采用多字节字符编码方案。读者将在本章实践任务环节了解常用的两种中文字符编码方案GBK和UTF-8,为将来解决中文字符乱码问题打下坚实基础。

本书在第2章和第3章详细讲解HTTP请求数据的构成;在第4章详细讲解HTTP响应数据的构成。通过这些知识的讲解,读者可以了解HTTP的本质、Web开发的本质。

说明

通过HTTP,浏览器也可以向Web服务器发送二进制数据(例如文件上传),服务器也可以向浏览器返回二进制数据(例如文件下载)。文件上传和文件下载分别在本书第3章和第4章进行详细讲解。