HTTP

ACK 确认字符(Acknowledgement)  SYN:同步序列编号(Synchronize Sequence Numbers)
MSL 报文最大生存时间(Maximum Segment Lifetime)

为了准确无误地将数据送达目标处,TCP协议采用了三次握手(three-wayhandshaking)
发送端首先发送一个带 SYN 标志的数据包给对方。
接收端收到后,回传一个带有 SYN/ACK标志的数据包以示传达确认信息。
最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。
若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包

四次握手断开TCP连接
第一次握手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但此时主动关闭方还可以接受数据。
第二次握手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次握手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次握手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

url解析过程
输入地址,浏览器智能匹配可能的url,(历史记录,书签等地方),查看本地硬盘的 hosts 文件,如果没有浏览器会发出一个 DNS请求给DNS服务器解析
拿到域名对应的IP地址之后,浏览器会以一个随机端口(1024<端口<65535)向服务器的WEB程序(常用的有httpd,nginx等)80端口发起TCP的连接请求。
建立了TCP连接之后,发起一个http请求,后端从在固定的端口接收到TCP报文开始,它会对TCP连接进行处理,对HTTP协议进行解析,并按照报文格式进一步封装成HTTP Request对象,供上层使用。
在浏览器没有完整接受全部HTML文档时,就已经开始显示这个页面了解析html以构建dom树 -> 构建render树 -> 布局render树 -> 绘制render树
在浏览器显示的时候,当遇到要获取外图片,CSS,JS文件等等时,浏览器将会发起不断发起异步的http请求来获取这些资源。

DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。

HTTP/1.1 虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了 Cookie 技术

虽然用 GET 方法也可以传输实体的主体,但一般不用 GET 方法进行传输,而是用 POST 方法。虽说 POST 的功能与 GET很相似,但POST的主要目的并不是获取响应的主体内容HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认URI 的有效性及资源更新的日期时间
 
持久连接的特点是,只要任意一端
没有明确提出断开连接,则保持 TCP 连接状态。持久连接的好处在于减少了 TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。另外,减少开销的那部分时间,使
HTTP 请求和响应能够更早地结束,这样 Web 页面的显示速度也就相应提高了,在 HTTP/1.1 中,所有的连接默认都是持久连接

管线化技术出现后,不用等待响应亦可直接发送下一个请求

Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出
去。服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

针对范围请求,响应会返回状态码为 206 Partial Content 的响应报文如果服务器端无法响应范围请求,则会返回状态码 200 OK 和完整的实体内容。

内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源。内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准。
包含在请求报文中的某些首部字段就是判断的基准


状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。
1XX Informational(信息性状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求出错

200 OK
204 No Content
206 Partial Content
301 Moved Permanently 永久性重定向,浏览器会记录下,下次访问直接访问新地址
302 Found 临时性重定向 表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问,
400 Bad Request表示请求报文中存在语法错误
401 Unauthorized 该状态码表示发送的请求需要有通过 HTTP 认证
403 Forbidden 对请求资源的访问被服务器拒绝了
404 Not Found 表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。
500 Internal Server Error 服务器端在执行请求时发生了错误。也有可能是 Web应用存在的 bug 或某些临时的故障。
503 Service Unavailable 该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法
处理请求。如果事先得知解除以上状况需要的时间,最好写入
RetryAfter 首部字段再返回给客户端

Http在tcp的基础上进行连接,可以同时有6个并行的tcp连接,在tcp里,http只能单线程请求与响应
http2 实现了http并发传递给tcp

HTTPS 是身披 SSL 外壳的 HTTP
通常,HTTP 直接和 TCP 通信。当使用 SSL时,则演变成先和 SSL通信,再由 SSL和 TCP 通信了

公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。

跨域问题:
jsonp
cors

CSP (内容安全策略)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值