赞
踩
本文章参考了很多文档文献整理成狮子自己喜欢的风格类型文字,主要有:
《图解网络-小林coding》、Github上面的《前端语音社群》,ChatGpt 3.5
大家有兴趣可以去找来看看,一起上岸!!!
主要抓住三方面:超文本 传输 协议
HTTP 协议是⼀个双向协议(两点之间)
eg:
浏览器是请求⽅ A ,百度⽹站就是应答⽅ B。双⽅约定⽤ HTTP 协议来通信,于是浏览器把请求数据发送给⽹站,⽹站再把⼀些数据返回给浏览器,最后由浏览器渲染在屏幕,就可以看到图⽚、视频了。
A——>B
A<——B 两点之间可以有很多个过程,但是这个过程中也得遵循Http协议
答:超文本传输协议。是一个在网络世界里面专门在两点之间传输文字、图片、视频、音频等超文本数据的约定和规范
答:
Http协议是基于TCP/IP协议的形式,
Http/1.0: 采用的是短连接并且是串行请求,这样客户端每次发送一个请求就需要建立一次TCP连接(三次握手),并且串行请求会进行很多无谓的TCP连接和断开,这样就造成了很大的通信负担。
Http/1.1:为了改善上述问题,Http/1.1采用了长连接的通信方式,也叫持久连接,即TCP连接默认不关闭,可以被多个请求复用,这样就有效减少了TCP的重复连接与断开造成的额外负担。
Http/2.0:相比于前两个版本,Http/2.0性能上进行了很大的提升。
首先,采用二进制格式而非文本格式,解析起来更高效;
其次它采用完全多路复用,而非有序并阻塞的、只需一个连接即可实现并行;
还能进行服务器推送,允许服务端推送资源给客户端
HTTP头字段(HTTP header fields),是指在超文本传输协议(HTTP)的请求和响应消息中的消息头部分它们定义了一个超文本传输协议事务中的操作参数。
字段名 | 说明 | 示例 |
---|---|---|
Accept | 能够接受的回应内容类型(Content-Types) | Accept: text/plain |
Accept-Charset | 能够接受的字符集 | Accept-Charset: utf-8 |
Accept-Language | 能够接受的回应内容的自然语言列表 | Accept-Language: en-US |
Cache-Control | 用来指定在这次的请求/响应链中的所有缓存机制 都必须 遵守的指令 | Cache-Control: no-cache |
Connection | 该浏览器想要优先使用的连接类型 | Connection: keep-alive Connection: Upgrade |
Cookie | 服务器通过 Set- Cookie (下文详述)发送的一个 超文本传输协议Cookie | Cookie: $Version=1; Skin=new; |
Content-Length | 以 八位字节数组 (8位的字节)表示的请求体的长度 | Content-Length: 348 |
Content-Type | 请求体的 多媒体类型 | Content-Type: application/x-www-form-urlencoded |
Host | 服务器的域名(用于虚拟主机 ),以及服务器所监听的传输控制协议端口号 | Host: en.wikipedia.org:80 Host: en.wikipedia.org |
代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束
常见的有:
代表请求已成功被服务器接收、理解、并接受
常见的有:
表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向
常见的有:
代表了客户端看起来可能发生了错误,妨碍了服务器的处理
常见的有:
表示服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生
常见的有:
Https协议 = Http协议 + SSL/TLS 安全协议
窃听⻛险,Http协议仅支持明文传输,所有信息都暴露在大众眼球,信息很容易被窃听,⽐如通信链路上可以获取通信内容,⽤户号容易没。
篡改⻛险,⽐如强制植⼊垃圾⼴告,视觉污染
冒充⻛险,⽐如冒充淘宝⽹站,⽤户钱容易没。
对应解决方案:
信息加密:交互信息⽆法被窃取。
校验机制:⽆法篡改通信内容,篡改了就不能正常显示。
身份证书:证明淘宝是真的淘宝⽹。
Get
⽅法的含义是请求从服务器获取资源,这个资源可以是静态的⽂本、⻚⾯、图⽚视频等
eg: 你打开我的⽂章,浏览器就会发送 GET 请求给服务器,服务器就会返回⽂章的所有⽂字及资源。
POST
⽅法则是相反操作,它向 URI 指定的资源提交数据,数据就放在报⽂的 body ⾥。
eg: 你在我⽂章底部,敲⼊了留⾔后点击「提交」(暗示你们留⾔),浏览器就会执⾏⼀次 POST 请求,把你的留⾔⽂字放进了报⽂ body ⾥,然后拼接好 POST 请求头,通过 TCP 协议发送给服务器。
tips:安全和幂等性的概念
在 HTTP 协议⾥,所谓的安全是指请求⽅法不会「破坏」服务器上的资源。
所谓的「幂等」,意思是多次执⾏相同的操作,结果都是「相同」的。
那么很明显 GET ⽅法就是安全且幂等的,因为它是「只读」操作,⽆论操作多少次,服务器上的数据都是安全的,且每次的结果都是相同的。
POST 因为是「新增或提交数据」的操作,会修改服务器上的资源,所以是不安全的,且多次提交数据就会创建多个资源,所以不是幂等的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。