一、一般的请求消息如下图所示
我们将上述的请求消息分为三个部分:请求消息行、请求消息头、消息正文。
1.请求消息行
请求消息的第一行为请求消息行,
GET /test/test.html HTTP/1.1
GET为请求方式,请求方式分为:Get(默认)、POST、DELETE、HEAD等
GET:明文传输 不安全,数据量有限,不超过1kb
POST:暗文传输,安全。数据量没有限制。
/test/test.html为URI,统一资源标识符
HTTP/1.1为协议版本
2.请求消息头
从第二行开始到空白行统称为请求消息头
Accept:浏览器可接受的MIME类型
告诉服务器客户端能接收什么样类型的文件。
Accept-Charset:浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip
Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。 可以在浏览器中进行设置。
Host:初始URL中的主机和端口
Referrer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面
Content-Type:内容类型
告诉服务器浏览器传输数据的MIME类型,文件传输的类型
If-Modified-Since:利用这个头与服务器的文件进行比对,如果一致,则从缓存中直接读取文件
User-Agent:浏览器类型.
Content-Length:表示请求消息正文的长度
Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep -Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接
Cookie:用于分辨两个请求是否来自同一个浏览器,以及保存一些状态信息,
Date:请求时间GMT
3.消息正文
当请求方式是POST方式时,才能看见消息正文,
消息正文就是要传输的一些数据,如果没有数据需要传输时,消息正文为空。
二、响应
响应消息如图所示:
1.响应消息行
第一行响应消息为响应消息行,
HTTP/1.1 200 OK
HTTP/1.1为协议版本
200为响应状态码,常用的响应状态码有40余种,这里我们仅列出几种,详细请看:
200:一切正常
302/307:临时重定向
304:未修改,客户端可以从缓存中读取数据,无需从服务器读取
404:服务器上不存在客户端所请求的资源
500:服务器内部错误
OK为状态码描述
2.响应消息头
Location:指示新的资源的位置
通常和302/307一起使用,完成请求重定向
Server:指示服务器的类型
Content-Encoding:服务器发送的数据采用的编码类型
Content-Length:告诉浏览器正文的长度
Content-Language:服务发送的文本的语言
Content-Type:服务器发送的内容的MIME类型
Last-Modified:文件的最后修改时间
Refresh:指示客户端刷新频率,单位是秒
Content-Disposition:指示客户端下载文件
Set-Cookie:服务器端发送的Cookie
Expires:-1
Cache-Control:no-cache (1.1)
Pragma:no-cache (1.0) 表示告诉客户端不要使用缓存
Connection:close/Keep-Alive
Date:请求时间
3.响应正文
即网页的源代码(F12可查看)