Java每日一面(Part1:计算机网络)[19/11/13]

作者:晨钟暮鼓c
个人微信公众号:程序猿的月光宝盒

## 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状态码

​ 五种可能的取值

  1. 1xx:提示信息 -- 表示请求已接收,继续处理

  2. 2xx:成功 -- 表示请求已被成功接收,理解,接受

    ​ 200 OK: 正常返回信息

  3. 3xx:重定向 -- 要完成请求必须进行更进一步的操作

  4. 4xx:客户端错误 -- 请求有语法错误或者请求无法实现

    ​ 400 Bad Request: 客户端请求有语法错误,不能被服务器所理解

    ​ 401 Unauthorized: 请求未经授权,这个状态码必须和 WWW-Authenticate报头一起使用

    ​ 403 Forbidden: 服务器收到请求但是拒绝提供服务

    ​ 404 Not Found: 请求资源不存在,或者,输入了错误的URL

  5. 5xx:服务端错误 -- 服务器未能实现合法的请求

    ​ 500 Internal Server Error: 服务器发生不可预知错误,一般是指程序代码错误

    ​ 503 Server Unavailable: 服务器当前不能处理客户端的请求,一段时间后可能恢复正常(连接池满了)

原文地址:https://www.cnblogs.com/jsccc520/p/11854110.html