http与https知识点
get和post区别
- get请求的参数放在URL中,而POST将数据放在报文体中,
- get请求具有幂等性和安全性,而POST没有
- get请求可以被浏览器缓存,而POST不行
除了get和post方法还有什么方法
- put 向指定位置上传最新资源
- delete 请求删除某个资源
- head 和GET方法差不多,但是不返回报文实体主体部分。
- OPTIONS 查询指定的URL能够支持的方法 返回的是比如Allow: GET, POST, HEAD, OPTIONS
http与https区别
状态码
2XX成功
- 200 表示成功 服务器已经成功处理了请求
- 201 请求成功并且服务器创建了新的资源
- 202 服务器已接受请求,但未处理
3XX重定向
- 301 永久移动,表示请求的资源已经永久移动到了其他位置
- 302 临时移动
- 303 和302有着相同的功能,但是303明确要求客户端应该采用 GET 方法获取资源。
- 304 未修改,从上次请求以后,请求的网页未更改,服务器返回此响应时并不会返回页面内容
4XX客户端错误
- 400 请求报文中有语法错误
- 401 该状态码表示发送的请求需要有认证信息
- 402
- 403 Forbidden 请求被拒绝
- 404 Not Found 服务器找不到请求的网页
5XX服务器错误
- 500 服务器错误,无法处理请求
- 501
- 502 服务器作为网关或者代理,从上游服务器收到无效响应
- 503 服务不可用
- 504 网关超时
请求报文与响应报文
请求报文
- 请求报文包括 请求行,请求头,空行,请求数据
- 请求头:请求方式(get/post)+路径+http版本
- 请求行:关键字 (键值对组成)比如 Connection: keep-alive
- 请求数据:body
响应报文
- 状态码
- http头部
- 空行
- 主体 包含响应内容比如http代码
### http存在的缺点 - 被监听
数据明文传输,如果在中间某一点数据被劫持了,发送的数据就可能被获取,比如银行卡号和密码, - 被伪装
通信时无法保证通信双方合法,比如和淘宝通信,你怎么知道返回数据的是不是淘宝,中间人可能伪装成淘宝 - 被篡改
中间篡改数据以后,接收方并不知道数据被篡改了https
- https的出现,解决了这三个问题 被监听,被伪装,被篡改
- 被监听的解决 数据加密
- 被伪装 双方通过证书确认身份
- 被篡改
https过程
- https并不是新协议,而是通过http+ssl构建的可进行加密传输,身份认证的协议
- 由以前的http通过TCP握手,改变为先与ssl握手再与tcp握手
输入URL,按下回车经历的过程
- DNS解析,获得域名对应的IP地址
- 查询浏览器自身缓存
- 查询系统缓存
- 查询路由器缓存
- 域名服务器缓存
- 顶级域名服务器缓存
- 找到了ip地址,TCP建立连接
- 发送HTTP请求
- 服务器通过路径及参数生成HTML页面代码返回给浏览器
- 浏览器拿到html页面代码开始解析和渲染页面