1.1什么是http协议
-超文本传输协议
-浏览器和服务器之间的一种通信协议
-该协议是W3C负责制定的,其本质就是数据传输格式提前制定好的。浏览器和服务器都必须按照这种数据格式进行接收和发送
1.2 http协议版本号
HTTP1.1
1.3 http协议包括几部分
-请求协议:从浏览器发送到服务器的时候采用的数据传送格式
-响应协议:从服务器发送到浏览器的时候采用的数据传送格式
1.4请求协议
-请求协议包括四部分
请求行
消息报头
空白行
请求体
1.4.1请求行包括几部分?
请求方式,URI,协议版本号
空白行:专门用来分离消息报头和请求体的
- 响应协议包括四部分:
状态行:协议版本号,状态码,状态描述信息
响应报头
空白行:分离响应报头和响应体的
响应体:
响应协议重点掌握:
-200:响应成功正常结束
-404:资源为找到
-500:服务器内部错误
。。。。。
2.GET和POST请求的区别?
2.1什么时候浏览器发送的请求是get请求?什么时候浏览器发送的是post请求?
只有当使用表单form,并且将form标签的method属性设置成method=“post”才是post请求,其余所有的请求方式都是get请求。
get请求和post请求的区别?
解决浏览器乱码方法:
meat charset=“utf-8“;
GET请求在请求行上提交数据,格式 uri?name=value&name=value&name=value....
这种提交方式最终提交的数据会显示在地址栏上。
-POST请求在请求体中提交数据,相对安全;提交格式:name=value&name=value&name=value
这种提交方式最终不会在浏览器地址栏中显示;
-post请求在请求体中提交,所以post请求提交的数据没有长度限制
-get请求在请求行上提交数据,所以get请求提交的数据有长度限制
-get请求只能提交字符串数据;post请求可以提交任何类型的数据,包括视频,所以文件上传必须采用post请求;
-get请求最终的结果,会被浏览器的缓存收纳,而post请求最终的结果不会被浏览器收纳
-浏览器将资源缓存之后,缓存的资源是和某个特定的路径绑定在一起的,只要浏览器再发送这个相同的路径,这个时候回去缓存中获取资源,不再访问服务器,以这种方式降低服务器压力,提高用户体验,但有时候我们不希望用缓存,希望每次都访问服务器,可以再请求路径后面添加时间戳,例如:http://ip:port/oa/System/login?timestamp=121;
js获取毫秒:new Date().getTime();
3.post请求和get请求应如何选择使用?
-有敏感数据,必须使用post请求;
-传送数据不是普通字符串;
-传送的数据非常多;
-这个请求修改服务器端数据使用post;
-剩下的都要使用get
-get请求多数情况下冲服务器中读取数据,这个读取时间在短期内是不会发生变化的,所以get最终的结果被浏览器缓存起来了。