互联网的基本原理
当用户想要访问互联网上的一个网页时,通常需要先在浏览器(客户端)的地址栏中输入网址(URL),然后我们的浏览器通过输入的网址中的域名在DNS服务器(域名服务器,是进行域名和与之相对应的IP地址转换的服务器)中找到该网址所对应的服务器IP地址(IP地址由4个小于256的数字组成,每个主机在Internet上都有唯一的地址),并且通过网址中的相关路径告知服务器当前想要访问的资源信息,服务器收到请求后将相关网页发送给浏览器,最后浏览器通过解析执行返回网页的代码将网页完整的展示在浏览器中。
一、基本概念
1. 在本地开发,服务器共享;
2. HTTP协议(Hypertext Transfer Protocol,超文本传输协议):一次HTTP事务由“HTTP请求”和“HTTP响应”构成;
http://(协议) + www.info110.com(域名) + /356562.html(路径/文件)
二、HTTP协议大厂面试题
1. HTTP协议的主要特点?
1.1. 简单快速:每个资源有固定的地址,访问简单快速
1.2. 灵活:一个http协议可以完成不同数据类型传输
1.3. 无连接:一次HTTP事务完成就会断掉
1.4. 无状态:服务端和客户相对独立,服务端无法知道服务端是否已经执行过某个请求
2. HTTP报文组成部分(顺序要准确)?
2.1. 请求报文:请求行、请求头、空行、请求体
2.2. 响应报文:状态行、响应头、空行、响应体
3. HTTP常见的状态码有哪些?
3.1. 状态码分类
- 1xx:服务器收到的请求
- 2xx:请求成功,如200
- 3xx:重定向,如302
- 4xx:客户端错误,如404
- 5xx:服务端错误,如500
3.2. 常见状态码
- 200:请求成功
- 301:永久重定向(配合location,浏览器自动处理)
- 302:临时重定向(配合location,浏览器自动处理)
- 304:资源未被修改(缓存还有效)
- 403:没有权限
- 404:资源未找到
- 500:服务器错误
- 504:网关超时
3.3. 关于协议和规范
- 统一的标准
- 不要违反规范(如早期的IE,违反规范必然被淘汰)
4. 什么是Restful API?
4.1. 一种新的API设计方法(主要针对请求中的method)
- GET请求:获取数据
- POST请求:新建数据
- PATCH/PUT请求:更新数据
- DELETE:删除数据
4.2 和传统API区别:
- 传统API设计:把每个url当作一个功能
- Restful API:把每个url当作一个唯一资源
4.3 如何设计成一个资源
- 不使用url参数:传统API /api/list?page=1&size=10,Restful API /api/list/2/10
- 用method表示操作类型:
- 创建文章:传统API post /api/create-article,Restful API post /api/article
- 修改文章:传统API post /api/update-article?id=1,Restful API put /api/article/1
- 获取文章:传统API get /api/get-article?id=1,Restful API get /api/article/1
5. HTTP连接建立有几次握手,分别是什么?
5.1. 第一次握手:客服端发送一个报文(SYN),服务器接收到了,说明:客户端的发送能力和服务器的接收能力没有问题
5.2. 第二次握手:服务器回应客户端发送一个报文(ACK),客户端接收到了。说明:服务器的发送能力和接收能力没有问题,客户端的发送和接收能力没有问题
5.3. 第三次握手:客户端回应服务器并发送一个报文,服务器接收到了。说明: 通过这次接收,服务器确认客户端的接收能力和发送能力没有问题