前端实习生面试题(四 )--跨域和HTTP

目录

1. 一个页面从输入url到页面加载显示完成,这个过程中都发生了什么

2. 线程和进程的区别

3. 为什么会存在跨域问题

4. 跨域请求资源的方法

5. http方法

6. HTTP协议的主要特点及组成

7. HTTP和HTTPS

8. HTTP状态码

9. 三次握手 四次挥手

10. TCP和UDP的区别

11. get和post的区别

12.  Ajax有关

13. cookie的弊端

14. localStorage,sessionStorage区别


1. 一个页面从输入url到页面加载显示完成,这个过程中都发生了什么

 (1)当发送一个URL请求时,浏览器会开启响应的一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询,找到对应的ip地址

(2)浏览器与远程web服务器通过TCP三次握手来建立一个TCP/IP连接。

(3)一旦建立连接,浏览器会通过该连接向远程服务器发送HTTP的GET请求。远程服务器找到资源后并使用HTTP响应返回该资源。

2. 线程和进程的区别

首先

进程:是执行中的一段程序,一旦一段程序被载入到内存中并准备执行,它就是一个进程

   线程:单个进程中的每个任务就是一个线程。

一个线程只能属于一个进程,但是一个进程可以有多个线程

3. 为什么会存在跨域问题

因为浏览器中的同源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。

4.跨域请求资源的方法

(1)如果浏览器支持Access-Control-Allow-Origin,就在被请求的Response header中加入

// 指定允许其他域名访问  

header('Access-Control-Allow-Origin:*');  

// 响应类型  

header('Access-Control-Allow-Methods:POST');  

// 响应头设置  

header('Access-Control-Allow-Headers:x-requested-with,content-type');

(2)如果浏览器不支持,就通过Nginx反向代理,满足浏览器的同源(源是由URL,主机名,端口号组成)策略实现跨域

(3)通过jsonp来解决跨域,但是只能发GET请求-

通过在文档中嵌入一个<script>标记从另一个域中返回数据
标记来从另一个域中返回数据标记来从另一个域中返回数据

5. http方法

get:请求资源

POST:传输资源

HEAD:获取报文首部资源

PUT:更新资源

DELETE:删除资源

6. HTTP协议的主要特点及组成

简单快速、灵活、无连接、无状态

简单快速:统一资源服务器、资源地址时固定的,请求资源只需传送对应的路径和方法即可

灵活:HTTP允许传输任意类型的数据对象。同一个http协议可以完成不同数据类型的传输

无连接:每次处理完请求后,连接就会断开

无状态:每次请求处理完断开,都不会有记录信息,再次请求,服务端也不能识别是否时同一个客户端。

组成:

报文分为:请求报文、响应报文

请求报文包括:

-请求行:主要包括请求方法、页面地址、协议版本

-请求头:由KEY/value组成,告诉服务端需要的资源类型

-空行:表示请求头结束,下边的都是请求体内容

-请求体:包括请求的一些数据

响应报文:响应行、响应头、空行与请求报文相差不多

7. HTTP和HTTPS

二者承载于不同的协议之上,造成了二者的差异

https之所以比http安全,是因为他利用ssl/TLS协议传输。它包含证书,卸载,流量转发,负载均衡,页面适配,浏览器适配,refer传递等。保障了传输过程的安全性

8. HTTP状态码

hTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码类型

1**:信息,服务器收到请求,需要请求者继续执行操作

2**:成功,操作被成功接收并处理

3**:重定向,需要进一步操作以完成请求

4**:客户端错误,请求包含语法错误或无法完成的请求

5**:服务器错误,服务器在处理请求过程中发生了错误

200 请求成功。

206 部分内容。服务器成功处理了部分get请求

迅雷等通过此类(响应实现断点续传或者将一个大文档分解为多个下载段同时下载)

     http请求字段range:

   格式: Range: bytes=start-end

   请求资源的部分内容(不包括响应头的大小),单位是byte,即字节,从0开始.

     如果服务器能够正常响应的话,服务器会返回206 Partial Content 的状态码及说明.

   如果不能处理这种Range的话,就会返回整个资源以及响应状态码为 200 OK.

http的header分割符:\r\n

301 永久移动,请求资源已被永久的移动到新的URL

302 临时移动  资源只是临时被移动。客户端应继续使用原有URI

400 客户端请求的语法错误,服务器无法理解

401 请求需要用户的身份认证

403 服务器理解客户端的请求,但是拒绝执行此请求

404 服务器无法根据客户端的请求找到资源

500 服务器内部错误,无法完成请求

503 超载或系统维护,服务器暂时无法处理客户端的请求

9. 三次握手 四次挥手

建立TCP的话,需要三次握手才能建立,而断开连接则需要四次挥手

三次握手:通俗描述就是(最主要是防止已过期的连接再次传到被连接的主机)

三次握手改成仅需要两次握手,可能发生死锁

(1) A对B说:我的序号是x,我要向你请求连接;(第一次握手,发送syn包,然后进入syn-send状态)

(2)B听到之后对A说:我的序号是y,期待你的下一句是x+1,同意建立连接(第二次握手,发送ack-syn包,然后进入syn-rcvd状态)

(3)A听到B说同意建立连接之后,对B说:已确认你同意和我连接(确认号ack=y+1,确认ACK=1,序列号seq=x+1)。(第三次握手,A已经进入established状态)

(4)B听到A的确认后,也进入established状态

四次挥手:通俗描述就是

(1) A与B交谈结束之后,A要结束此次会话,对B说:我要关闭连接了(序列号seq=u,终止FIN=1)。(第一次挥手,A进入FIN-WAIT-1)

(2)B收到消息后说:收到,你要关闭连接了。(序列号seq=v,

确认号ack=u+1,确认ACK=1)(第二次挥手,B进入CLOSE-WAIT)

(3)A收到B的确认后,等待了一段时间,因为B可能还有话要说。(此时A进入FIN-WAIT-2)

(4)B说完了它要说的话(只是可能还有话要说)之后,对A说,我要关闭连接了。(序列号seq=w,确认号ack=u+1,终止FIN=1,确认ACK=1)(第三次挥手)

(5)A收到B要结束的消息后说:已收到你要关闭连接的消息。(seq=u+1,ack=w+1,ACK=1)(第四次挥手,A进入到CLOSED状态)

(6)B收到A的确认后,也进入CLOSED状态

10. TCP和UDP的区别

Tcp是传输控制协议,UDP是用户数据报协议

TCP面向连接;UDP是无连接的

TCP传输数据比较慢,但是无差错,不重复,不丢失,基于字节流的运输层通信协议;UDP则具有较好的实时性,工作效率高,适用于高速传输和实时性较高的通信,但是不保证可靠交付。

TCP对系统资源要求较多,UDP对系统资源要求较少15. HTTP和HTTPS

二者承载于不同的协议之上,造成了二者的差异

https之所以比http安全,是因为他利用ssl/TLS协议传输。它包含证书,卸载,流量转发,负载均衡,页面适配,浏览器适配,refer传递等。保障了传输过程的安全性

11. get和post的区别

GET请求把参数包含到URL里,POST通过request body来传递函数,

大多时候get用来获取数据,post用来传递数据

但其实get请求里也可以添加request body,post可以带上url参数

但是由于服务器原因,可能会选择忽略这些数据。

然后GET是产生一个数据包,post产生两个数据包

对于GET请求来说,浏览器会把HTTP header和data一次性发送出去,

而post先发送HTTP header 服务器返回100 continue,再发送data

12.  Ajax有关 

Ajax是无需重新加载页面,就能够更新部分网页的技术

优点:可以实现局部刷新

缺点:不支持浏览器back按钮

暴露了与服务器交互的细节

对搜索引擎的支持比较弱

不容易调试

如何创建ajax:

(1)创建XMLHttpRequest对象,也就是创建一个异步调用对象.

(2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.

(3)设置响应HTTP请求状态变化的函数.

(4)发送HTTP请求.

(5)获取异步调用返回的数据.

(6)使用JavaScript和DOM实现局部刷新.

13. cookie的弊端

cookie是由服务器生成并发给客户端的小量信息,大小为4kb左右,主要用途来保存登陆信息

cookie:数量和长度的限制

安全性问题:如果被拦截,就可获取所有的session信息

每次访问都要传送cookie给服务器,浪费带宽

有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。

14. localStorage,sessionStorage区别

localstorage和sessionstorage大小为5mb左右,仅在浏览器中保存

sessionStorage用于本地存储一个会话中的数据,这些数据只有同一个会话的页面才能访问,并且当前会话销毁后,数据也销毁。

Localstorage用于持久化的本地存储,除非手动删除,不然一直存在。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容