1.什么是HTTP协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最广的一种网络协议。
所有WWW文件都必须遵守这个标准。设置HTTP最终的目的是为了提供一种发布和接受html页面的方法。
HTTP协议,有IETF委员会制定的浏览器和Web服务器之间通信的格式。
2.HTTP/1.1比1.0有哪些改进?
(1)持久连接 Connection: keep-alive 不是永久连接
让一次连接中可以发起多个请求-响应
(2)虚拟主机 Host: www.tmooc.cn
一个Apache同时共存多个站点
(3)代理连接 Proxy: xxx
浏览器通过中间的代理间接访问Web服务器
Request Message:请求消息,浏览器发给服务器的消息
Response Message:响应消息,服务器发给浏览器的消息
先有请求,再有响应消息;没有请求,就没有响应消息。
3.八种请求方法
GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS、CONNECT
4. GET和POST请求方法的区别?
(1)浏览器中如何发起GET请求:
在地址栏中输入地址、SRC/HREF属性、超链接跳转、JS跳转、GET方式提交表单、AJAX-GET请求
(2)浏览器中如何发起POST请求:
POST方式提交表单、AJAX-POST请求
(3)GET请求把请求数据追加在请求URI后面,以?k=v&k=v格式
POST请求把请求数据放在请求消息主体中,以k=v&k=v格式
HTTP协议规定k=v中的中文和特殊标点都必须进行编码。
(4)浏览器/服务器对请求URI总长度都有长度限制,如1024字节——GET请求数据长度有限制,中文的话不能超过几十个;请求消息主体没有长度限制——POST请求没有数据长度限制,可用于文件上传。
(5)二者语义上不同:GET表获取,POST表传递
5.响应状态码
1xx 服务器接受到请求
2xx 请求成功
3xx 重定向
4xx 客户端错误
5xx 服务器错误
6.修改HTTP响应消息头部的方法:
方式1:修改Web服务器的配置文件
方式2:声明HTML META元标签,并非绝对有效
方式3:使用服务器端动态语言设置响应消息头部
7.如何进行HTTP访问优化
(1)域名解析
尽可能减少域名解析次数——减少跨站外部资源的引用
<img src="http://www.qzone.com/1.jpg">
<script src="http://bootcss.com/1.js">
(2)创建连接
努力减少连接创建次数——使用持久连接避免重复连接
Connection: keep-alive
(3)发送请求
尽力减少请求次数——合理设置缓存时间、资源合并
(4)等待响应
提高服务器端运行速度——提高数据运算及查询速度
(5)接收响应
尽可能减小响应数据长度——删除无用的空白字符、启用gzip压缩
8.HTTPS协议
HTTPS:HTTP over SSL,建立在安全套接字层之上的HTTP协议——会对HTTP请求和响应消息进行加密和解密——安全的