书到用时方恨少~网络原理面试参考
Posted 可乐好哇!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了书到用时方恨少~网络原理面试参考相关的知识,希望对你有一定的参考价值。
客户端与服务器:
- 客户端主动发送请求(request),服务器被动接受请求并作出响应(response)
- 通信方式:一问一答、多问多答、一问多答
协议
- 两个不同的程序,互相理解请求或响应内容的含义,相当于制定一致的规则
TCP/IP 五层结构(TCP/IP协议栈):
应用层 | 代码中约定两台主机之间传输数据的格式 |
---|---|
传输层 | 不考虑传输的中间过程,只考虑起点和终点如何进行传输 |
网络层 | 比较远的两台主机,怎么一步一步把数据传过去 |
传输层数据链路层 | 相邻主机之间的通信 |
物理层 | 物理设施,网线、光纤、电磁波等 |
http协议是应用层协议是典型的“一问一答”工作模式
URL:https://gitee.com/kelehaowa 平时说的网址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N4j3EVdT-1631186638718)(/Users/cola/Library/Application Support/typora-user-images/image-20210909105632998.png)]
- 域名通过DNS机制自动转成IP地址(好处是方便用户好记)
- http服务器通常部署在80端口
- https服务器通常部署在443端口
- URL小结:
- IP地址:服务器在哪
- 端口号:服务器上的哪个程序
- 带层次的路径:这个服务器上的哪个资源
- 查询字符串(query string):资源里面的一些细节内容
http协议具体的格式
HTTP请求:
- 首行(请求行):方法,URL,版本号
- 请求报头(header):键值对 冒号空格分割
- 空行:header的结束标记
- 请求正文(body)-- 正文可以省略
HTTP响应:
- 首行(状态行):版本号,状态码,状态码的描述
- 响应报头(header)
- 空行
- 响应正文(body)-- 正文可以省略
请求最常用的就是get 和 post
- get方法一般用于“从服务器获取数据”
- post方法一般用于“往服务器上提交数据”
请求头:
- 空行:相当于请求头的结束标记
- 请求正文(body):
- 对http的get请求来说,一般没有body,可以有query string,也可以没有
- 对于http的post请求来说,一般是有body,一般是没query string,需要提交给服务器的信息都是放到body(正文)部分中的
常用的状态码:
- 200 OK 访问成功
- 404 Not Found 要访问的资源没找到
- 403 Forbidden 要访问的资源,没有权限
- 500 Internal Server Error 服务器挂了
- 302 Move temporarily 重定向
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zh0qGZRQ-1631186638719)(/Users/cola/Library/Application Support/typora-user-images/image-20210909130025848.png)]
http协议的核心内容:浏览器按照这样的格式构造一个字符串,发送给服务器,相当于“发送一个http请求”;
服务器也是构造一个符合这种格式的字符串,返回给浏览器,相当于“返回了一个http的响应”
get 和 post的区别:本质上两者没有区别,实现的场景差不多一样;
-
get一般把用户自定义的数据放到query string,pget一般没有body
post一般把用户自定义的数据放到body,post一般有body
-
get一般设计成“幂等的”
post设计的时候不必考虑“幂等”
-
get请求可以被缓存
post请求一般不可以被缓存
-
get请求可以被浏览器收藏夹保存起来
post请求,不能被收藏夹保存(保存的时候,body部分就没了)
cookie:
-
它是一个字符串,键值对结构的字符串,在浏览器里面保存着(每个域名/地址下都有自己的Cookie)
-
cookie的内容来自于服务器
- http响应中,有一个或多个set-cookie字段,里面的内容就会被浏览器保存下来
-
cookie会在下次请求的时候自动
- 浏览器保存好服务器返回的cookie之后,如果下次再访问这个服务器,此时请求中就会自动加上cookie这个字段,字段里面的值就是之前从服务器这边返回的值
-
cookie应用场景:用户身份
服务器同一时刻会收到大量的http请求,这些请求分别都是来自于哪个用户,服务器必须要明确的识别出来
session 和 cookie的区别:
- cookie是客户端的概念
- session是服务器的概念
Https
- http是明文传输,特别危险
- https是基于http引入了一套加密方案
以上是关于书到用时方恨少~网络原理面试参考的主要内容,如果未能解决你的问题,请参考以下文章