1. DNS底层跑的是TCP还是UDP?
DNS底层同时使用TCP和UDP协议,端口均为53。其选择取决于具体应用场景:
- 域名解析:常规的域名解析请求(如客户端查询IP地址)通常使用UDP协议。由于返回数据一般不超过512字节,UDP无需建立连接,减少了三次握手的开销,从而提升响应速度并降低服务器负载。尽管UDP不可靠,但DNS可通过重传机制弥补丢包问题,且多数场景对实时性要求高于可靠性。
- 区域传输(Zone Transfer):主辅DNS服务器之间的数据同步(区域传输)使用TCP协议。该场景需传输大量数据(远超512字节),且要求可靠性。TCP通过可靠连接和确认机制确保数据完整性和顺序,避免因丢包导致同步失败。
- 特殊情况:若DNS查询响应超过512字节(如复杂TXT记录),UDP报文会被截断(TC标志置位),此时客户端会切换至TCP重新请求。不过此类情况较少,多数DNS服务器仅支持UDP查询,客户端默认优先使用UDP。
2. 常用的http状态码。
- 1xx:提示信息,表示目前是协议处理的中间状态,还需要后续的操作。
- 2xx:成功,报文已经收到并被正确处理。
- 200。OK。请求成功,返回所求资源。
- 3xx:重定向,资源位置发生变动,需要客户端重新发送请求。
- 301。Moved Permanently。资源永久移动至新URL。
- 302。Found。临时重定向至新URL。
- 301和302都会在响应头里使用字段location,指明后续要跳转的url,浏览器会自动重定向新的url。
- 304。Not Modified。表示资源未被修改,告诉客户端可以继续使用缓存资源。
- 4xx:客户端错误,请求报文有误,服务器无法处理。
- 400。Bad Request。客户端请求报文有错误。
- 403。Forbidden。服务器禁止访问资源,权限不足。
- 404。Not Found。请求资源不存在。
- 5xx:服务器错误,服务器在处理请求时内部发生了错误。
- 500。Internal Server Error。服务器内部错误。
- 502。Bad Gateway。代理出现问题,或者代理与后端服务器之间出现问题。
- 504。Gateway Timeout。代理无法连接后端服务器。
3. 在linux中curl一个域名,整个过程会使用到的协议有哪些?
- DNS协议:用于将域名解析为IP地址。通常使用UDP协议的53端口,若响应数据过大则切换至TCP。
- TCP协议:HTTP/HTTPS请求基于TCP建立连接,确保可靠传输。
- IP协议(IPv4/IPv6):通过--ipv4或--ipv6参数指定,用于网络层的数据传输。
- TLS/SSL协议(HTTPS场景):用于加密传输。
- HTTP协议:默认使用HTTP/1.1,支持HTTP/2(需服务器协商)。
4. GET和POST的区别。
- 用途
- GET:用于从服务器获取数据,不改变服务器状态(安全且幂等)。
- POST:用于提交数据到服务器,通常用于创建或更新资源(非幂等)。
- 安全:指请求方法不会破坏服务器上的资源。幂等:多次执行相同的操作结果都是相同的。
- 参数传输方式
- GET:参数通过URL查询字符串传递(如?key=value),长度受浏览器和服务器限制(通常2048字节),HTTP协议本身对URL长度并没有做任何规定。
- POST:参数通过请求体(Body)传输,无严格长度限制。
- 安全性
- GET:参数暴露在URL中,易被日志、浏览器历史记录存储,不适合敏感信息。
- POST:参数在请求体body中,相对更安全,但仍需依赖HTTPS加密保障安全性。
- 缓存与书签
- GET:可被缓存,URL可收藏为书签。
- POST:默认不缓存,参数不会保存在书签或历史记录中。
- 对服务器状态的影响
- GET:仅用于查询,不应修改服务器资源。
- POST:可能触发服务器状态变化(如创建用户、提交表单)。
- 常见使用场景
- GET:搜索、查询API、公开数据获取。
- POST:表单提交、文件上传、敏感数据传输(需配合HTTPS)。
5. HTTP和HTTPS的区别。
- HTTP是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS则解决HTTP不安全的缺陷,在TCP和HTTP层之间加入了SSL/TLS协议,使得报文能够加密传输。
- HTTP连接建立相对简单,TCP三次握手之后便可进行HTTP的报文传输。而HTTPS在TCP三次握手之后,还需进行SSL/TLS的握手过程,才可进入加密报文传输。
- 两者的默认端口不一样,HTTP默认端口号是80,HTTPS默认端口号是443。
- HTTPS协议需要向CA(数字证书认证机构)申请数字证书,来保证服务器的身份是可信的。
- 。
- 。
- 。
- 。
- 。
- 。
- 。