1.相关问题python
问题1: 客户端访问url到服务器,整个过程会经历哪些nginx
问题2: 描述HTTPS和HTTP的区别web
问题3: HTTP协议的请求报文和响应报文格式编程
问题4: HTTP的状态码有哪些?浏览器
2.问题回答缓存
问题1:安全
按照TCP/IP的五层协议描述服务器
1.首先进行域名解析,域名解析具体过程以下:网络
2.应用层:浏览器发起HTTP请求;并发
3.传输层:选择传输协议,TCP或者UDP,TCP是可靠的传输控制协议,对HTTP请求进行封装,加入了端口号等信息;提供端到端的链接
4.网络层:经过IP协议将IP地址封装为IP数据报;经过路由传输到对端。而后此时会用到ARP协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的全部主机,并接收返回消息,以此肯定目标的物理地址,找到目的MAC地址;
5.数据链路层:根据mac地址,创建链接
6.物理层:物理层传输010101的数据流
7.服务器响应请求并请求客户端要的资源,传回给客户端;.断开TCP链接,浏览器对页面进行渲染呈现给客户端。
问题2:
http协议:
https协议:
注:关于http版本的相关内容还待学习,主要是1.0/1.1/2.0版本之间的区别
问题3:
http请求报文:HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成,以下图所示:
http响应报文:响应报文由状态行、响应头部、空行 和 响应包体 4 个部分组成,以下图所示:
请求报文以及响应报文相关具体的应用,须要参考具体的项目或者是实例。
问题四:
状态码如200 OK,以3位数字和状态缘由构成。数字中的第一位指定了响应级别,后两位无分别。响应分别有5种。
每一个系列经常使用的code
2xx:200(get请求成功),201(post,put建立了一个资源),204(删除一个资源,服务器删除成功)
3xx:301(服务器永久移动,自动转发到新的位置),302(服务器临时移动,原服务器没有永久移除)俩者的最大区别为搜索引擎是否记录
4xx:400(客户端请求语法错误),403(服务器拒绝提供服务),404(客户端引用了不存在的资源)
5xx:500(服务器错误,拒绝请求),503(服务器当前不能处理客户请求,当前服务器不可用),504(请求超时,没有到达网关)
500,503,504常见场景
500:常见场景为编程语言语法错误,web脚本错误,高并发,打开文件数超过系统资源限制,通常解决思路为查看服务器nginx,python的错误日志,负载均衡,修复脚本错误
503:常见场景为服务器没法使用,通常为服务器超载或者是停机维护,解决思路为查看服务器系统资源或者肯定服务器开启状态
502,504:常见场景为web服务器故障,程序进程不够,通常解决思路为查看nginx代理的问题,或者是nginx的conf配置相关
ok