什么是跨域请求?
当前发起请求的域与该请求指向的资源所在的域不一样,凡是发送请求的url的协议、域名、端口号三者之间任意一者与当前页面地址不同的请求。这里的域指的是:我们认为若协议+域名+端口号均相同,那么就是同域。
get和post请求的区别?
1)应用场景:GET请求是请求服务器的数据,而POS一般是修改服务器的资源
2)是否缓存浏览器会对GET进行缓存,但是很少对POST请求缓存
3)发送的报文:GET请求的请求体是空的,POST请求的请求体是传递的一些参数
4)安全性:GET请求的参数是拼接到url后面的,但是POST的是请求在请求体中,请求的url会保存到历史记录中,如果POST也在url后面拼接参数,会导致不安全。
5)请求长度:GET请求被不同的浏览器限制了长度
6)参数类型:POST请求支持更多的参数类型。
**get方法中url长度限制的原因:**http对get方法的url长度并没有限制,只是不同的浏览器对get有不同的字节限制。
HTTP1.0与HTTP1.1有什么不同?
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通信协议来传递数据
区别:
1)长连接
HTTP1.1支持长连接和请求的流水线,HTTP1.0默认使用短链接;
2)HOST域
HTTP1.1在Request消息头里多了一个HOST域,而且是必传的,Http1.0则没有这个域。
3)带宽优化
HTTP1.0中存在一些浪费带宽的现象;HTTP1.1中再请求消息中引入了range头域,他支持只请求资源的某个部分。
4)请求方法和响应状态码
HTTP1.1增加了OPTIONS,PUT, DELETE, TRACE, CONNECT这些Request方法
5)cache(缓存)
缓存方面在http1.0中是使用的expires和if-Modified-Since来进行缓存的判读,但是expires判读的是服务器上的时间,如果客户端和服务器上的时间不一致,就会导致缓存没有命中的情况。在http1.1中增加了Etag和if-None-Match等来进行缓存的判断。
HTTP和HTTTPS的区别:
HTTPS需要CA证书,费用较高,而HTTP不需要;
HTTP是超文本传输协议,是明文传输,而HTTPS是具有安全性的SSL加密的传输协议;
HTTP的端口号是80,HTTPS的端口号是443;
HTTP协议较简单,是无状态的,HTTPS是通过SSL和HTTP构建的可加密传输和身份认证的网络协议,比较安全。