HTTP
1、作用:描述客户端和服务器端数据的传递的协议
2、全称:HyperText Transfer Protocol超文本传输协议。超文本:HTML
3、版本:1.0 1.1(主流)
4、HTTP1.0 VSHTTP1.1 (主要区别)
1.0:无状态协议。每次访问服务器都需要建立一次网络连接,耗费时间和资源
1.1:可以在一次网络连接基础之上,发出很多次请求和收到很多次响应。
http协议是建立在TCP协议基础上。http协议也是基于请求与响应的模型,http协议默认的端口是80.
5、明确几个问题:
带有连接的标记,比如:<img src=””/> <linkhref=””/> <script src=””/>,浏览器遇到这些标记,会自动向服务器发出请求。
http请求
请求消息头
作用:向服务器端传递一些附加信息。
形式:1、Header-Name: headerValue1,heaerValue2
2、Header1:headerValue1
Header1:headerValue2
注意:一个头2个值和两个同名头和值是不同的。
常用的请求消息头:
Accept:告知服务器,浏览器能够接受的数据MIME类型。
MIME类型:
磁盘文件系统中:文件的扩展名区分不同的文件的。
网络中:通过数据的MIME类型区分数据的。
他们之间有对应关系:查阅Tomcat\conf\web.xml
<mime-mapping>
<extension>txt</extension><!--磁盘文件的扩展名-->
<mime-type>text/plain</mime-type><!--txt文件对应的MIME类型-->
</mime-mapping>
MIME特点:大类型/小类型
Accept-Charset:告知服务器,客户端能接受的字符集。
*Accept-Encoding:告知服务器,客户端支持的压缩编码。比如gzip
Accept-Language:告知服务器,客户端支持的语言。(可以通过浏览器设置)
*Referer:告知服务器,当前页面是由哪个页面转过来的。用户如果是直接访问的,没有这个头。
*Content-Type:告知服务器。客户端提交的请求正文的MIME类型。默认是application/x-form-data-urlencoded(username=abc&password=123)。可以通过表单form的enctype属性指定。可选值multipart/form-data(文件上传)
*If-Modified-Since:告知服务器,本地缓存的资源的最后的修改时间。
*User-Agent:告知服务器,客户端使用的浏览器的类型
*Content-Length:告知服务器,客户端发送的请求正文内容的长度
Connection:告知服务器,需要持久连接
*****Cookie:向服务器发送cookie数据
8、响应部分详解(服务器发给客户端的)
8.1响应行
HTTP/1.1 200 OK
----------------------------
HTTP/1.1:响应使用的协议及版本号
----------------------------
200:响应状态码。说明了本次请求的结果状态
1XX
2XX:一切正常
3XX
4XX:访问的资源有问题
5XX:访问的资源运行出错了(出现异常)
常用的响应码:(目前用到了就30个左右,其他的是W3C保留的)
200:一切OK
302、307:临时重定向
304:客户端请求的内容木有更改(没有更新)
404:访问的资源不存在
500:服务器内部错误。一般出现在服务端程序出现异常
----------------------------
OK:对响应码的文字描
响应正文
浏览器收到的数据,这些数据都是HTML。浏览器进行展现。(右键看源码,实际上就是看的响应的正文)
响应消息头
作用:向客户端传递一些附加信息
常用的响应消息头:
*Location:指向一个地址。经常和302响应码实现请求重定向。
Server:告知客户端,服务器端使用的服务器(软件)的类型。
*Content-Encoding:告知客户端,服务器使用的压缩编码。比如gzip(压缩格式)
*Content-Length:告知客户端,请求正文的内容长度。
*Content-Type:告知客户端,请求正文的MIME类型。
*Content-Type:text/html;charset=UTF-8(正文为超文本,编码用的是UTF-8)
*Refresh:告知客户端,定时刷新
*Content-Disposition:告知客户端,请使用下载的方式打开
Content-Disposition=attachment;filename=1.jpg
*****Set-Cookie:会话管理
*一起来告诉客户端不要缓存:
Expires: -1
Cache-Control: no-cache (1.1)
Pragma: no-cache (1.0)