1、HTTP与HTTPS的区别
https实际上就是建构在 SSL/TLS 之上的http协议。
- http明文传输,数据不加密,安全性较差;https数据传输过程加密,安全性较好;
- http工作在tcp协议的80端口;https工作在tcp协议的443端口;
- https需要到CA申请证书,需要一定的费用,且http更耗费服务器资源;
- http页面响应速度比https快。
2、HTTP的请求方法
客户端(浏览器)向服务端发送请求。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法
- GET请求:客户端要什么服务端就给什么
- POST请求:客户端给服务端传输数据,服务器端处理后再返回
- HEAD请求:类似GET请求,不过只获取报头,用来确定请求的有效性、资源的更新日期等
- DELETE请求:请求服务端删除指定资源
- OPTIONS请求:客户端查看服务端性能
- TRACE请求:回显服务端收到的请求,主要用于测试与诊断
- PUT请求:客户端向服务端传输数据,并取代指定文档内容
- PATCH请求:PUT方法的补充,对已知资源局部更新
- CONNECT请求:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器
3、常见的响应头
- Content-Type:告诉浏览器后边的文档类型
- Content-Encoding:告诉浏览器文档的编码方法
- Content-Length:告诉浏览器内容长度
- Server:告诉浏览器服务器的信息(名字、版本号等)
- Location:告诉浏览器去哪里提取文档
- Last-Modified:告诉浏览器文档最后的改动时间
- Date:告诉浏览器当前的GMT时间
- Refresh:告诉浏览器N秒后刷新该页面或者跳转到指定页面
- Expires:告诉浏览器文档过期时间,并提醒浏览器不再缓存文档
4、HTTP状态码
常见状态码:
- 200:请求成功
- 404:请求的资源(网页等)不存在
- 500:内部服务器错误
状态码分类:
- 1**:服务器收到请求,需要请求者继续执行操作
- 2**:操作被成功接受并处理
- 3**:重定向,需要进一步操作以完成请求
- 4**:客户端错误,请求包含语法错误或无法完成请求
- 5**:服务端错误,服务器在处理请求的过程中发生了错误
5、HTPP协议1.x版本与HTTP协议2.x版本的区别
- http2采用二进制传输,相较于文本传输的http1来说更加安全可靠;
- 多路复用:http1一个连接只能提交一个请求,而http2可以同时处理无数个请求;
- 头部压缩:http2通过gzip与compress对头部进行压缩,并且在客户端与服务端各维护了一份头部索引表,只需要根据索引id就可以进行头部信息的传输,缩小了头部容量,间接提升了传输效率;
- 服务端推送:http2服务端可以主动推送资源给客户端,避免客户端花过多的时间逐个请求资源,这样可以降低整个请求的响应时间。