HTTP

102 阅读9分钟
标题
同源策略协议、域名、端口只要有一个不一样,就是不同的源。
跨域通信JSONP:某些浏览器不支持CORS,只能用JSONP进行跨域,于是我们请求对方的JS文件,JS文件会执行一个回调,回调里面就有我们的数据,回调名字是可以随机生成的随机数,以callback的方式传给后台,后台会把函数返回给我们并执行。CORS:服务器需要添加一个 Access-Control-Allow-Origin 响应头,并指明可以共享数据的域而Access-Control-Allow-Origin 响应头的值,可以设置为“*” (星号),表示可以与任意域进行数据共享
HTTP 状态码200 OK:客户端请求成功。400 Bad Request:客户端请求有语法错误,不能被服务器所理解。401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。403 Forbidden:服务器收到请求,但是拒绝提供服务。404 Not Found:请求资源不存在,举个例子:输入了错误的URL。500 Internal Server Error:服务器发生不可预期的错误。503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。
彻底弄懂HTTP缓存机制及原理 强制缓存Cache-Control:响应头属性有(1.private:客户端可以缓存 。2.max-age=xxx:缓存的内容将在 xxx 秒后失效 。3.no-cache:需要使用对比缓存来验证缓存数据)),对比缓存Last-Modified:响应头 / If-Modified-Since:请求头)(Etag:响应头 / If-None-Match:请求头(优先级高于Last-Modified / If-Modified-Since))
两张动图-彻底明白TCP的三次握手与四次挥手 三次握手的目的是建立可靠的通信信道,主要的目的就是双方确认自己与对方的发送与接收机能正常。 第一次握手:客户什么都不能确认;服务器确认了对方发送正常 。第二次握手:客户确认了:自己发送、接收正常,对方发送、接收正常;服务器确认 了:自己接收正常,对方发送正常。第三次握手:客户确认了:自己发送、接收正常,对方发送、接收正常;服务器确认 了:自己发送、接收正常,对方发送接收正常。 所以三次握手就能确认双发收发功能都正常,缺一不可
什么是TCP的四次挥手 在网络数据传输中,传输层协议断开连接的过程我们称为四次挥手。1.客户与服务器交谈结束之后,客户要结束此次会话,就会对服务器说:我要关闭连接了(第一 次挥手)。2.服务器收到客户的消息后说:好的,你要关闭连接了。(第二次挥手)。3.然后服务器确定了没有话要和客户说了,服务器就会对客户说,我要关闭连接了。(第三次挥 手)。4,客户收到服务器要结束连接的消息后说:已收到你要关闭连接的消息。(第四次挥手),才关闭
什么是Http协议? Http协议是对客户端和服务器端之间数据之间实现可靠性的传输文字、图片、音频、视频等超文本数据的规范,格式简称为“超文本传输协议”
http和https的区别  1、https有ca证书,http一般没有。2、http是超文本传输协议,信息是明文传输。https则是具有安全性的ssl加密传输协议。3、http默认80端口,https默认443端口。
什么是TCP/IP和UDP 1. TCP通信类似于于要打个电话,接通了,确认身份后,才开始进行通行。2. UDP通信类似于学校广播,靠着广播播报直接进行通信 (对某些实时性要求比较高的情况使用UDP,比如游戏,媒体通信,实时直播,即使出现传输错误也可以容忍;其它大部分情况下,HTTP都是用TCP,因为要求传输的内容可靠,不出现丢失的情况
http请求方式有哪些? GET:请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据。HEAD:请求一个与GET请求的响应相同的响应,但没有响应体。POST:将实体提交到指定的资源。PUT:请求有效载荷替换目标资源的所有当前表示DELETE:删除指定的资源。OPTIONS:用于描述目标资源的通信选项。PATCH:对资源应用部分修改。CONNECT:建立一个到由目标资源标识的服务器的隧道。TRACE:沿着到目标资源的路径执行一个消息环回测试。
为什么要三次握手? 1.验证服务端和客户端是否遵循TCP/IP协议 。2.为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
为什么HTTP协议要基于TCP来实现? TCP是一个端到端的可靠的面相连接的协议,HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误时,会重传)
关于Http 2.0 你知道多少 1.二进制分帧(采用二进制格式的编码将其封装)。2.首部压缩(设置了专门的首部压缩设计的HPACK算法。)。3.流量控制(设置了接收某个数据流的多少字节一些流量控制)。4.多路复用(可以在共享TCP链接的基础上同时发送请求和响应)。5.请求优先级(可以通过优化这些帧的交错和传输顺序进一步优化性能)。6.服务器推送(就是服务器可以对一个客户端请求发送多个响应。服务器向客户端推送资 源无需客户端明确的请求。(重大更新))
http的响应报文有哪些? 1. http的响应报是服务器返回给我们的数据,必须先有请求体再有响应报文。2.响应报文包含三部分 状态行、响应首部字段、响应内容实体实现
GET方法与POST方法的区别 区别一: get重点在从服务器上获取资源,post重点在向服务器发送数据;区别二: Get传输的数据量小,因为受URL长度限制,但效率较高;Post可以传输大量数据,所以上传文件时只能用Post方式;区别三: get是不安全的,因为get请求发送数据是在URL上,是可见的,可能会泄露私密信息,如密码等;post是放在请求头部的,是安全的
cookie和session对于HTTP有什么用? HTTP协议本身是无法判断用户身份。所以需要cookie或者session
cookie与session区别 1 .cookie数据存放在客户端上,安全性较差,session数据放在服务器上,安全性相对更高 。2.单个cookie保存的数据不能超过4K,session无此限制 信息后,使用自己的私钥进行解密。 由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性;但是和对称加密比起来,非常的慢
游览器输入一个地址。到页面展示中间经历了哪些东西? 1、游览器输入url。先解析url地址是否合法  2、游览器检查是否有缓存(游览器缓存-系统缓存-路由器缓存)。如果有,直接显示。如果没有,跳到第三步。  3、在发送http请求前,需要域名解析(DNS解析),解析获取对应过的ip地址。  4、游览器向服务器发起tcp链接,与游览器简历tcp三次握手  5、握手成功后,游览器向服务器发送http请求,请求数据包  6、服务器收到处理的请求,将数据返回至游览器  7、游览器收到http响应。  8、游览器解析响应。如果响应可以缓存,则存入缓存  9、游览器发送请求获取嵌入在HTML中的资源(html,css,JavaScript,图片,音乐等),对于未知类型,会弹出对话框  10、游览器发送异步请求  11、页面全部渲染结束
请列举三种禁止浏览器缓存的头字段, 并写出相应的设置值 1.Cache-Control : no-cache 2. Pragma : no-cache 3.Expires: Thu, 01 Dec 1994 16:00:00 GMT (非常特殊,转换特定日期格式才可以)
https的访问过程 1.客户使用httpsURL访问Web服务器,要求与Web服务器建立SSL连接。2.Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。3.客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。4.客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。5.Web服务器利用自己的私钥解密出会话密钥。6.Web服务器利用会话密钥加密与客户端之间的通信。
https的优缺点? 1. 优点:<1>.正确发送数据到客户端,<2>.更安全,<3>.增加中间人攻击的成本,<4>.搜索排名更高 2.缺点:<1>.页面渲染更耗时间; <2>.成本增加;<3>.HTTPS连接缓存不如HTTP高效;<4>.SSL证书通常需要绑定IP;<5>.有局限性
什么是 DDOS 攻击 向目标系统同时提出数量庞大的服务请求。
DDOS 攻击方式 1. 通过使网络过载来干扰甚至阻断正常的网络通讯;2.通过向服务器提交大量请求,使服务器超负荷;3.阻断某一用户访问服务器;4.阻断某服务与特定系统或个人的通讯。
如何应对 DDOS 攻击 1.黑名单。2.DDOS 清洗:对用户请求数据进行实时监控,及时发现DOS攻击等异常流量,在不影响正常业务开展的情况下清洗掉这些异常流量。3.CDN 加速 。4.高防服务器:高防服务器主要是指能独立硬防御 50Gbps 以上的服务器,能够帮助网站拒绝服务攻击,定期扫描网络主节点

参考文章:

13道http面试题,你能否接住

TCP、UDP、Socket、HTTP网络编程面试题(总结最全面的面试题!!!)

拯救你的面试:前端面试大全--HTTP面试题