Java每日一面(Part1:计算机网络)[19/11/13]
个人微信公众号:程序猿的月光宝盒
## 1. HTTP相关[1]
1.1 HTTP简介
HTTP协议,即超文本传输协议,属于应用层的协议,他是基于请求和响应模式的无状态的 应用层协议.
1.2主要特点
1.2.1 支持 客户/服务器模式(C/S)
1.2.2 简单快速
1.2.3 灵活
1.2.4 无连接 :
限制每次连接只处理一个请求,服务器收到客户的请求,并受到应答之后,就断开连接,以节省传输时间,从http1.1起,默认使用长连接,即服务器需要等待一定时间后才断开连接,以保证连接特性
1.2.5 无状态
1.3 请求/相应的步骤
1.客户端连接到Web服务器
2.发送HTTP请求
3.服务器接收请求并返回HTTP响应
4.释放TCP连接
5.客户端浏览器解析HTML内容
1.4 在浏览器地址栏输入URL,按下回车之后经历的流程
1.DNS解析
2.TCP连接(可以结合三次握手来讲解)
3.发送HTTP请求
4.服务器处理请求并返回HTTP报文
5.浏览器解析渲染页面
6.连接结束(4次挥手)
1.5 常见的HTTP状态码
五种可能的取值
-
1xx:提示信息 -- 表示请求已接收,继续处理
-
2xx:成功 -- 表示请求已被成功接收,理解,接受
200 OK: 正常返回信息
-
3xx:重定向 -- 要完成请求必须进行更进一步的操作
-
4xx:客户端错误 -- 请求有语法错误或者请求无法实现
400 Bad Request: 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized: 请求未经授权,这个状态码必须和 WWW-Authenticate报头一起使用
403 Forbidden: 服务器收到请求但是拒绝提供服务
404 Not Found: 请求资源不存在,或者,输入了错误的URL
-
5xx:服务端错误 -- 服务器未能实现合法的请求
500 Internal Server Error: 服务器发生不可预知错误,一般是指程序代码错误
503 Server Unavailable: 服务器当前不能处理客户端的请求,一段时间后可能恢复正常(连接池满了)