文章目录
什么是HTTP? HTTP 和 HTTPS 的区别?
超文本运输协议,是实现网络通信的一种规范
- http:用于浏览器和网站服务器之间传递信息,以明文方式发送内容,不提供任何方式的数据加密
- 规模小,通信快
- https:HTTPS = HTTP + SSL/TLS,用SSL证书来验证服务器的身份,为浏览器和服务器之间的通信进行加密,使得隐私数据能加密传输
- HTTPS 由于需要设计加密以及多次握手,性能方面不如 HTTP
- HTTPS需要SSL,SSL 证书需要钱,功能越强大的证书费用越高
- HTTP 和 HTTPS 使用连接方式不同,默认端口也不一样,HTTP是80,HTTPS是443
说说HTTP 常见的状态码有哪些,适用场景?
- 1xx(信息性状态码):表示请求已被接收,需要继续处理。
- 100 Continue:客户端发送大文件前,先询问服务器是否接受
- 101 Switching Protocols:服务器同意客户端请求,切换协议(如从 HTTP 升级到 WebSocket)。
- 2xx(成功状态码):表示请求已成功处理。
200
:标准成功响应- 201:资源创建成功(如提交表单后返回新资源的 URL)
- 204:请求成功,但无需返回数据(如 DELETE 请求)
- 3xx(重定向状态码):表示需要客户端进一步操作以完成请求。
301
:永久重定向会缓存。旧的域名不再使用时,用户访问旧域名时用301就重定向到新的域名(搜索引擎会更新索引,用户自动跳转到新 URL)302
:临时重定向不会缓存,(如未登录用户跳转到登录页,搜索引擎保留原 URL)- 304:缓存未过期
- 4xx(客户端错误状态码):客户端请求有误
- 400:请求语法错误(如参数格式错误、JSON 解析失败)
401
:未认证(如未登录用户访问需权限的接口)- 403:服务器拒绝执行(如已登录但权限不足)
404
:资源不存在(如 URL 路径错误或资源已删除)- 405:请求方法不被允许(如用 GET 访问只支持 POST 的接口)
- 429:请求频率过高(触发限流)
- 5xx(服务器错误状态码):表示服务器处理请求时出错
500
:服务器内部错误(如代码异常或数据库连接失败)- 503:服务器停机维护时
504
:网关超时
说一下 GET 和 POST 的区别?
GET和POST,两者是HTTP协议中发送请求的方法
- 使用GET的请求应该只被用于获取数据,常用于加载网页、搜索查询、获取商品详情。
- POST是提交数据,常用于用户登录、提交表单、支付请求
- 安全性方面post更安全
- get明文暴露在 URL 和浏览器历史记录,post不可见(除非抓包)
- get受 URL 长度限制,post无限制
- get可被浏览器、代理服务器缓存,post默认不缓存
- RESTful API 设计:GET 用于查询(/users?id=1),POST 用于创建(/users),PUT/DELETE 用于更新和删除。
- TCP 数据包数量:GET 请求通常只需 1 个 TCP 包(Header + URL 数据一起发送),而 POST 可能需要 2 个包(先发 Header,再发 Body)。
说说 HTTP 常见的请求头有哪些? 作用?
1、基础控制:Host, User-Agent, Connection
2、内容协商:Accept, Content-Type
3、缓存管理:Cache-Control, If-Modified-Since
4、安全认证:Authorization, Cookie
5、跨域与权限:Origin, Access-Control-Request-*
- Host:指定请求的目标域名,Host: example.c