HTTP面试题
HTTP与HTTPs的区别
- HTTP是不安全的,HTTPs是安全的
- HTTP的标准端口号是80,HTTPs的标准端口号是443
- OSI网络模型中,HTTP工作于应用层,HTTPs的安全传输机制工作于传输层
- HTTPs中“s”指代安全套接层SSL
- HTTP无法加密,HTTPs会对传输数据进行加密(安全)
- HTTP无序证书,HTTPs需要CA机构wosign颁发的SSL证书
什么是HTTP无状态?怎么解决?
无状态: 协议对事物的处理没有记忆,如果后面的操作需要前面的信息则需要重登
例:网站登录账户后,点击页面内的链接跳转,登录状态就会消失,需要再登录
解决: 利用cookie&session
cookie就相当于一个通信证,保存着用户信息,第一次访问后server会给客户端发送一个cookie,客户端保存到当地。当客户端第二次访问服务器时,将cookie一并发送,服务器就知道是“老用户”
URI和URL区别
(1)URI
URI(Uniform Resource Identifier 统一资源标识符)用来唯一标识一个资源
URI是抽象的
- Web上可用的每种资源(HTML文档,图像,视频,程序)都是由URI定位的
- URI一般由三部分组成:
- 访问资源的命名机制
- 存放资源的主机名
- 资源自身的名称(由路径给出,强调资源本身)
URI定位了你要的资源是什么类型,存放地方的名称,资源的名称
URI告诉你这个东西是什么
(2)URL
URL(Uniform Resource Locator 统一资源定位符)
URL是一种具体的URI,URL可以标识一个资源(是什么),而且告诉这个资源去哪怎么获取
- URL主要用于各种www客户程序和服务器程序
- URL一般也是三部分组成:
- 协议(服务方式)
- 存有该资源的主机IP地址(有时也包含端口号)
- 主机资源的具体地址(目录、文件名)
URL告诉了资源是什么、资源在哪、资源怎么获取
(3)URN
URN(Uniform Resource Name 同一资源命名符)通过名字标识资源
(4)小结
URI: 抽象的,高层次概念定义
URL: 具体的,一种具体的URI
常见的HTTP方法有哪些?
- GET: 用于请求已被URI识别的资源,可以通过URL传参给服务器
- POST: 用于传输信息给服务器,主要功能与GET类似,但POST安全性更高,一般推荐使用POST
- PUT: 传输文件,报文主体中包含文件内容,保存到对应的URI处
- DELETE: 删除文件,与PUT方法相反,删除对应URI位置的文件
- HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效
- OPTIONS: 查询相应的URI支持的HTTP方法