1、什么是HTTP协议?
HTTP是超文本传输协议,是基于TCP/ip协议之上实现的用于客户端和服务器之间数据传输的一种协议
2、什么是HTTP协议的无状态?怎么解决HTTP协议的无状态?
HTTP协议的无状态:协议对于事务的处理没有记忆能力。说白了就是客户端每次发送请求都认为是一个新的请求,上一次的会话与下一次的会话没有联系。
解决:使用cookie或者session来保持会话
3、HTTP支持的方法有哪些?
一共有8种请求方法
GET:获取资源,常用于向服务查询某些信息
POST:提交数据,常用于新资源的创建或已有资源的修改
PUT:发送数据取代指定的内容
DELETE:删除指定的资源
HEAD:用于获取报文头
OPTIONS:查看服务器的性能信息
TRACE:回显服务器收到的请求,用于测试和诊断
CONNECT:HTTP/1.1中预留给能够将连接改为管道方式的代理服务器
4、GET 与 POST的区别
- GET主要是获取数据,POST是发送数据
- GET 传输数据是通过URL,以key=value的方式传输,并且在浏览器地址栏能让用户直接看见;POST 则是将请求参数放到请求实体中,整个过程对用户不可见
- GET的传输数据量小,受URL长度的限制;POST的传输量大,上传文件只能使用post的方式
- GET传递中文需要进行编码处理,而post支持标准字符集,可以传递中文
5、HTTP请求报文与响应报文的格式
请求报文组成:
- 请求行:包含请求方法 URI HTTP版本信息
- 请求头部
- 空行
- 请求内容实体
响应报文组成:
- 状态行:包含HTTP版本 状态码 状态原因
- 响应头部
- 空行
- 响应内容实体
6、HTTP1.0与HTTP1.1的区别
- http 1.0使用非持久连接,一个连接只能完成一次web传输,http 1.1 通过在请求头增加Connection: keep-alive 来保持连接来传输多个请求和响应
- HTTP 1.1 增加了请求头HOST域
- HTTP1.1 增加了PUT/DELETE/OPTIONS/TRACE/CONNECT请求方法
- 新增100状态码,客户端事先发送一个只带头域的请求,如果服务器因为权限拒绝了请求,就回送响应码401(Unauthorized);如果服务器接收此请求就回送响应码100,客户端就可以继续发送带实体的完整请求了。100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body
- HTTP1.1新增了一些cache新特性
7、从输入一个新的网址到用户完全看到页面,这期间都发生了什么?
1. 浏览器通过DNS查询域名的IP地址
2. 基于TCP建立连接
3. 浏览器向服务器发送HTTP请求
4. 服务器返回HTTP响应
5. 浏览器解析HTTP响应内容,将内容渲染到浏览器上
6. TCP连接关闭