24.0 网络知识(重要)
24.1 面试题-1(重点)
在浏览器输入www.baidu.com/,回车之后,会查看到百度首页,在这段网络通信过程中,发生了什么?
1.浏览器通过DNS服务器查找域名对应的IP地址
2.向IP地址对应的web服务器发送请求
3.web服务器响应请求,返回需要的数据
4.浏览器进行渲染,展示
24.2 HTTP和https(重要)
http:超文本传输协议,是一种发布和接受HTML页面的方法,端口号是80
https:是http的安全版本,在HTTP的基础上,增加了ssl安全套接层,端口443
s:ssl安全套接层,在传输层对网络链接进行加密,保证数据传输安全的
24.3 URL
24.3.1 url定义
统一资源定位符
24.3.2 URL解析
https://tieba.baidu.com/f?kw=%C3%C0%CA%B3&fr=ala0&tpl=5
http://tool.chinaz.com/tools/utf-8.aspx
https://baike.baidu.com/item/TCP/IP%E5%8D%8F%E8%AE%AE#5
基本格式:schema://host[:port]/path?query_string#anchor
schema 协议(https http ftp)
host[:port] 服务器的域名或者ip地址
port:端口
path:访问资源的路径
query_string:查询参数,发送给服务器,表达形式是参数名=对应的值
anchor:锚点,定位
?:问号后面的查询字符串不参与路径匹配
&:出现多个查询参数之后,进行连接
24.4 面试题get请求和post请求区别(重要)
| get | post |
|---|---|
| get将请求参数以键名=值拼接在URL地址 | post请求将请求参数以请求体的形式进行传递 |
| get请求是直接暴露在URL地址上,不安全 | post比较安全,敏感信息传递放在post中 |
| get请求在浏览器回退是无害的 | post再次提交请求 |
| get请求只能进行URL编码 | post支持多种编码 |
| get请求的请求参数会完整保留在浏览的历史记录中 | post参数不保留 |
| get请求在URL中传参是有长度限制的 | post没有长度限制 |
| get的接受的参数数据类型,ASCLL字符 | post没有限制 |
| get从服务器请求资源 | post向服务器提交资源 |
24.5 常用请求报头
第一排数据 请求方式 请求路径 协议
| 类型 | 描述 | 说明 |
|---|---|---|
| host | 主机和端口号 | |
| Connection | 连接类型 | keep_alive HTTP1.1的默认值,支持场链接 |
| Cache-Control | 缓存资源 | |
| User-Agent | 浏览器名称 | 标记浏览器身份 |
| Accept | 传输文件类型 | 标记浏览器或者其他客户端可以接收的文件类型 |
| Referer | 标记当前的请求网页来自于哪一个URL | |
| Accept-Encoding | 文件的编解码格式 | 标记浏览器接收的编码方式,编码是为了压缩文件提高了文件传输速度,浏览器接收到响应之后,先解码 |
| Accept-Language | 语言种类 | |
| cookie | 保存状态 |
24.6 响应
24.6.1 响应
24.6.2 响应头信息
| 类型 | 描述 |
|---|---|
| Connection | 回应了客户端connection,告知服务器也是支持长链接 |
| Content-Type | 告诉客户端,资源文件的类型,客户端可以通过utf-8来进行解码 |
| Date | 服务器发送资源的服务器时间 |
| Server | 服务器 |
24.6.3 响应状态(重要)
| 状态码 | 描述 |
|---|---|
| 100-199 | 表示服务器成功的接受了部分请求,继续提交其他请求,他能完成整个处理过程 |
| 200-299 | 表示服务器已经成功的接收请求并且完成整个处理过程,常用200 ok |
| 300-399 | 重定向,表示客户需要更加细化请求 |
| 400-499 | 客户端请求错误,404 notfound 、403 被拒绝 |
| 500-599 | 服务端出现错误,常用500 |
著名状态
| 状态码 | 类型 | 请求 | 说明 |
|---|---|---|---|
| 200 | ok | get | 服务器成功的返回用户请求的数据 |
| 201 | created | post/put | 用户新建或者修改成功 |
| 202 | accepted | 异步任务,请求正在后台排队 | |
| 204 | no content | delete | 用户删除数据成功 |
| 401 | unauthorized | 用户没有权限 | |
| 400 | bad request | post/put | 前端请求有语法错误,后断不能理解 |
| 403 | forbidden | 访问被禁止 | |
| 404 | not found | 错误的URL | |
| 406 | not acceptable | get | 用户请求的格式不存在,存在响应JSON,用户XML格式 |
| 500 | server error | 服务器发生错误 | |
| 503 | server unavailable | 服务器暂时不可用 |
24.7 请求总结
24.7.1 请求行
位置:在第一行
表达格式:请求方式 请求地址 协议版本
常用的请求方式
| 类型 | 描述 |
|---|---|
| get | 向服务器请求资源 |
| post | 在服务器新建资源 |
| put | 在服务器更新资源 |
| delete | 在服务器删除资源 |
| head | 获取响应报头 |
| options | 请求查询服务器性能,或者查询与资源相关的选项和需求 |
24.7.2 请求头
位置:在第一行之后,在空行之前
表达格式:
键值结构,描述的是客户端的信息,user_agent描述了浏览器类型
重要参数:
content-type 标记请求体数据类型
| 类型 | 描述 |
|---|---|
| application/x-www-form-urlencoded | from表单数据被编码为键值结构格式发送给服务器 |
| application/json | json数据格式 |
| text/HTML | HTML格式 |
| text/plain | 纯文本 |
| image/jpeg | jpg图片格式 |
| multipart/form-data | 在表单中进行文件上传 |
24.7.3请求体
在post,put方法中使用较多
不在gei中使用
请求体数据:表单数据,文本,HTML,JSON
24.8 响应
24.8.1 状态行
表达形式:协议版本 响应状态码 响应信息
24.8.2 响应头
描述的是服务器的基本信息,或者数据描述,提示客户端如何处理相应数据
24.8.3 响应体
就是数据,数据可以是图片,文本,json,HTML,xml