HTTP1.1中容易忽视的知识点

1. HTTP请求里,header中Accept和Content-Type的含义

Accept

表示当前这次请求,客户端希望服务端返回的数据类型(xml/json等)

Content-Type

表示当前这次请求,客户端提交的数据类型(x-www-form-urlencoded/json/xml等)

在标准的HTTP接口中,如果有Accept,则返回Accept指定的类型。如果无Accept,一般返回Content-Type指定的类型。

2. 跨域访问时,简单请求和非简单请求导致浏览器的不同处理。

跨域请求分为:简单请求(simple request)和非简单请求(not-so-simple request)。

简单请求

  1. 请求方法必须是:HEAD、GET、POST

  1. HTTP头的信息不能超出Accept、Accept-Language、Content-Language、Last-Event-ID(server-sent event)和Content-Type(且Content-Type只限于application/x-www-form-urlencoded、multipart/form-data、text/plain三个值)

非简单请求

非简单请求是那种对服务器有特殊要求的请求,比如请求方法是PUT或DELETE,或者Content-Type字段的类型是application/json。

非简单请求的CORS请求,会在正式通信之前,增加一次HTTP查询请求,称为"预检"请求(preflight)。

浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。

3. HTTP是无状态的协议,服务端如何区分请求的客户端

SessionId

服务端会自动生成一个名sessionId的cookie,通过sessionId区分。

(此cookie为HttpOnly,js无法直接获取和修改,但可以通过抓包工具获取,并可以通过js伪造。)

4. SOAP协议与HTTP协议的关系

SOAP协议本质是一种符合特殊规范的HTTP协议

应用场景:

1)不通过添加服务引用调用时

2)Jjs调用时


拓展:

  1. Last-Event-ID 标识最后一次接受的event id,一般应用于 Server-Sent Event 的断线重连

  1. Cookieless

  1. SOAP协议

  1. HTTP协议与TCP/IP协议的关系


http容易忽略的知识点.md


posted @ 2020-07-28 17:51  划破黑夜  阅读(110)  评论(0编辑  收藏  举报