-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhttp.txt
36 lines (34 loc) · 2.8 KB
/
http.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
1.什么是dns
dns是进行域名和与之对应的ip地址转换的服务器,dns中保存了一张域名和与之对应的ip地址表,以解析消息
dns的查询方法:递归查询,迭代查询
解析过程
发起请求查询www.baidu.com这个域名ispdns拿到请求后,先检查下自己的缓存中有没有这个地址有的话就直接返回。这个时候拿到的ip地址,会被标记为非权威服务器的应答
如果缓存中没有的话,ISPDNS会从配置文件里面读取根域名服务器的地址(这些地址是不变的,直接在BIND的配置文件中)
2.get和post区别
(1) get请求的数据会附加在url之 ,以 " ? "分割url和传输数据,多个参数用 "&"连接,而post请求会把请求的数据放在http请求体中
(2) get参数有长度限制(受限于url长度,具体的数值取决于浏览器和服务器的限制,最长2048字节),而post无限制
(3) get是明文传输,post是放在请求体中
(4) get请求会保存在浏览器历史记录中,还可能保存在web服务器的日志中
真相(重点)
首先get和post在本质上都是tcp链接,但由于http协议和浏览器或者服务器的限制,从而使它们在应用过程中产生了差别
较大的区别:简单的说,get产生个TCP数据包,post产生两个TCP数据包
get在请求时发送一个数据包,会将header和data一起发送过去,而post会产生两个数据包先发送header,服务器返回100,然后在发送data,服务器返回200
3.什么是CORS
Cross Origin Resourse-Sharing 跨站资源共享,它允许浏览器向跨源服务器,发出XMLHttpRequest 请求,从而克服 AJAX 只能同源使用的限制。
CORS请求类型
浏览器将 CORS 请求分成两类:简单请求和非简单请求
请求方法:head、get、post
http头信息
accept-language
content-language
last-event-id
content-type:只限于三个值application/x-www-from-urlencoed
mutipart/form-data、text/plain
凡是不同时满足上面的2个条件,就属于非简单请求
简单请求的CORS流程
当浏览器发现我们的 AJAX 请求是个简单请求,便会自动在头信息中,增加一个 Origin 字段。Origin 字段用来说明本次请求的来源(包括协议 + 域名 + 端口号),
服务端根据这个值来决定是否同意此次请求
Access-Control-Allow-Origin
该字段是必须的。表示许可范围的域名,通常有两种值:请求时 Origin 字段的值或者 *(星号)表示任意域名
Access-Control-Allow-Credentials
该字段可选。布尔值,表示是否允许在 CORS 请求之中发送 Cookie 。若不携带 Cookie 则不需要设置该字段