- HTTP 和HTTPS的区别:
答:开头;安全;加密;端口号;OSI层级;证书 - 什么是Http协议无状态协议?怎么解决Http协议无状态协议?
答:无法记录状态;解决方法:cookie - 常用的HTTP方法有哪些?
答:GET,POST,HEAD,PUT,DELETE,OPTIONS,TRACE,CONNECT - 请求报文和响应报文格式
答:
请求行:请求方法,URL,HTTP协议
请求头部
空行
请求体响应行:状态码
响应头部
空行
响应体
- 请求方法的特点
- GET:参数长度限制,不适合私密数据,不适合大量数据,一般请求用GET
- POST:数据封装在请求报文中,可传递大量数据且没有限制,不会出现在URL中,表单提交用POST
- HEAD:与GET相似,不过只返回响应头,不返回相应内容,用于查看页面状态(页面是否有更新)
- OPTIONS:获取当前URL所支持的方法
- DELETE:删除某资源
- PUT:把一个资源放到指定位置上,与POST相似,不过POST不指定资源存放位置,POST的数据存放位置有服务器自己决定
- TRACE:回显服务器收到的请求,主要用于测试或诊断
- CONNECT:HTTP/1.1协议预留的,能够将连接改为管道方式的代理服务器,通常用于SSL加密服务器的连接与非加密的HTTP代理服务器的通信
- 常见的首部:
- 通用首部字段(请求报文与响应报文都会使用的首部字段)
Date:创建报文时间
Connection:连接的管理
Cache-Control:缓存的控制
Transfer-Encoding:报文主体的传输编码方式 - 请求首部字段(请求报文会使用的首部字段)
Host:请求资源所在服务器
Accept:可处理的媒体类型
Accept-Charset:可接收的字符集
Accept-Encoding:可接受的内容编码
Accept-Language:可接受的自然语言 - 响应首部字段(响应报文会使用的首部字段)
Accept-Ranges:可接受的字节范围
Location:令客户端重新定向到的URI
Server:HTTP服务器的安装信息 - 实体首部字段(请求报文与响应报文的的实体部分使用的首部字段)
Allow:资源可支持的HTTP方法
Content-Type:实体主类的类型
Content-Encoding:实体主体适用的编码方式
Content-Language:实体主体的自然语言
Content-Length:实体主体的的字节数
Content-Range:实体主体的位置范围,一般用于发出部分请求时使用
- HTTPS工作原理
- 客户端请求
- 服务端返回公钥
- 客户端检测公钥合法性
- 生成一个随机值,将随机值用公钥加密传输给服务端
- 服务端收到后用服务端的私钥进行解密
- 将待传送的消息与随机值进行对称加密发送给客户端
- 客户端收到消息后利用随机值进行解密
- HTTP1.1特性
- 持久连接
- 管线化
- 断点续传
- HTTP优化方案
- TCP复用:多个客户端的HTTP请求连接到一个服务端的TCP连接上(负载均衡设备的独特功能);
- HTTP复用:一个客户端的多个HTTP请求通过一个TCP连接进行处理(HTTP1.1协议所支持的新功能,目前被大多数浏览器支持)
- 内容缓存:
- 压缩
- SSL加速
- TCP缓冲
参考连接:
HTTP面试题都在这里https://www.cnblogs.com/Java3y/p/8444033.html
https工作原理
https://blog.csdn.net/sean_cd/article/details/6966130
HTTP请求报文和响应报文
https://www.jianshu.com/p/0015277c6575