常见HTTP方法有哪些?使用场景分别是什么?
- GET:获取资源
- GET 方法用来请求访问已被 URI 识别的资源。 指定的资源经服务器
端解析后返回响应内容。
- GET 方法用来请求访问已被 URI 识别的资源。 指定的资源经服务器
- POST:传输实体主体
- POST 方法用来传输实体的主体。
- PUT:传输文件
- PUT 方法用来传输文件。
- HEAD:获得报文首部
- HEAD 方法和 GET 方法一样, 只是不返回报文主体部分。
- DELETE:删除文件
- DELETE 方法用来删除文件, 是与 PUT 相反的方法。 DELETE 方法按
请求 URI 删除指定的资源。
- DELETE 方法用来删除文件, 是与 PUT 相反的方法。 DELETE 方法按
- OPTIONS:询问支持的方法
- OPTIONS 方法用来查询针对请求 URI 指定的资源支持的方法。
- TRACE:追踪路径
- TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的方
法。
- TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的方
- CONNECT:要求用隧道协议连接代理
- CONNECT 方法要求在与代理服务器通信时建立隧道, 实现用隧道协
议进行 TCP 通信。
- CONNECT 方法要求在与代理服务器通信时建立隧道, 实现用隧道协
GET与POST有什么区别?
- 使用get请求的参数会拼装在URL上,以key=value用&符号连接的形式提交数据。当我们输入http://www.baidu.com时,我们请求的参数只能写在URL里。而POST提交请求不是在URL,例如在form 表单,method=post提交请求,URL不会有请求的参数。
- 传输内容大小不同,请求大量数据时,用GET请求会有限制,因为URL长度会有限制,POST不会限制。
- 安全性能,用GET登录账号时,用户名密码会在URL上,别人看到就能获取,浏览器的历史记录也会保留,某些插件也能扫描到浏览器的历史记录,服务器的日志也会保留,即很容易被他人获取。
- get是获取,post 是传递。
Form表单支持哪些方法
- form表单只支持 post 和get。
什么是RESTful API?
- REST – Representational State Transfer,英语的直译就是“表现层状态转移”。表现层就是资源,通过http协议实现客户端和服务器的交互,http协议是无状态协议,所以所有的状态都保存在服务器。而他们的交互会让数据和和状态发生变化,而变化就是建立在表现层上面的。RESTful API就是一套协议来规范多种形式的前端和同一个后台的交互方式.
- API一般有GET(读取),POST(新建),PUT(更新),PATCH(更新),DELETE(删除)
- PUT和POST区别是PUT修改传参,需包含全部参数,POST只需传递需要修改的参数
HTTP协议是什么?有哪些特点?
-
HTTP协议是超文本传输协议。
- 它用于客户端和服务端之间的通信。
- 通过客户端发送请求,服务器回复请求并返回响应。
- HTTP是无状态协议,不对请求和响应间的通信状态保存
- 使用URI定位资源
- 使用GET,POST,DELETE,PUT,CONNECT,TRACE,HEAD,OPTIONS等方法通信
- 可以持久链接,不用每次建立TCP。管线化发送请求
- 使用Cookie进行状态管理
-
基于B/S 模式,即客户/服务器模式。同时可以提供登陆认证和网间安全传输,例如HTTP下加入SSL层,可以提供安全的HTTPS服务。
-
通信开销小,简单快速,传输成本低。服务器请求某些一定的服务时,浏览者通常只需在请求报文中添加请求路径和方法。最一般的情形,例如GET、HEAD、POST等,这也是我们使用最多的。每一种请求方法都有自己的适用范围,在请求报文的内部,通过一些规则,说明了用户与Web服务器之间沟通的类型。同时,HTTP协议规则较为简单,因此使用HTTP服务器的系统,代码和程序规模都会比较轻量级,但是通信的速度却效率较高。
-
使用灵活:超文本协议,允许服务器和客户端传输任意类型或者任意数据结构的数据对象。而且,通过一个简单的头信息,例如将正在传输的类型由Content-Type加以标记,于是可以区分开。
-
节省传输时间:最初版本的HTTP协议使用非持续连接,只允许发送并处理一个连接,当请求响应完成,也就是服务器完成客户端的请求,同时收到了客户端浏览器的应答后,连接会立即断开。有了这种特点,通信方式节省了大量用于数据传输和等待应答的时间,时间成本变得非常小。同时,高版本HTTP协议,HTTP 1.1支持持续连接:多个对象可以通过一个连接可传送,不需要每次传输一个web对象就去创建一个新的连接。
-
可能影响传输效率,无状态:HTTP协议是无状态协议。无状态,如果协议对于事务处理没有记忆的机制,不能存储处理进度,此时,如果后续的操作需要前面的处理信息,就需要重新发送对象即必须重传,这样的后果是,可能多次连接才能完成操作,数据量会因此变大。“在服务器端,每个HTTP请求都要启动独立的线程去处理,减少Http请求的数目可以有效提高访问性能
什么是非持久连接,什么是持久连接?
- 每进行一次HTTP通信就要断开TCP连接。
- 任意一端没有提出断开连接,就要保持TCP连接。
Keep-Alive: timeout=5, max=100是什么意思?
- timeout:过期时间5秒
- max:过了100秒,强制断掉连接
- 就是在timeout时间内又有新的连接过来,同时max会自动减1,直到为0,强制断掉。
一次完整的Http请求所经历哪些步骤?/说说Http协议的工作流程?
-
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:
-
建立TCP连接
在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。 -
Web浏览器向Web服务器发送请求命令
一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET/sample/hello.jsp HTTP/1.1。 -
Web浏览器发送请求头信息
浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。 -
Web服务器应答
客户机向服务器发出请求后,服务器会客户机回送应答, HTTP/1.1 200 OK ,应答的第一部分是协议的版本号和应答状态码。 -
Web服务器发送应答头信息
正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。 -
Web服务器向浏览器发送数据
Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。 -
Web服务器关闭TCP连接
一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive
- TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。
-