300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > http post请求 参数放在路径后面 java_「思唯网络学院」网络基本概念之HTTP协议...

http post请求 参数放在路径后面 java_「思唯网络学院」网络基本概念之HTTP协议...

时间:2024-04-20 05:56:00

相关推荐

http post请求 参数放在路径后面 java_「思唯网络学院」网络基本概念之HTTP协议...

HTTP基本概念

HTTP,全称为 HyperText Transfer Protocol,即为超文本传输协议。是互联网应用最为广泛的一种网络协议,所有的 www 文件都必须遵守这个标准。 HTTP 特性: HTTP 是无连接无状态的 HTTP 一般构建于 TCP/IP 协议之上,默认端口号是 80 HTTP 可以分为两个部分,即请求和响应。 HTTP 请求: HTTP 定义了在与服务器交互的不同方式,最常用的方法有 4 种,分别是 GET,POST,PUT, DELETE。URL 全称为资源描述符,可以这么认为:一个 URL 地址,对应着一个网络上的资源,而 HTTP 中的 GET,POST,PUT,DELETE 就对应着对这个资源的查询,修改,增添,删除4个操作。 HTTP 请求由 3 个部分构成,分别是:状态行,请求头(Request Header),请求正文。 GET 请求报文实例:

状态行由请求方式,路径、协议等构成,各元素之间以空格分隔。对应到图中即为 GET、/books/?sex=man&name=Professional、 HTTP/1.1 请求头提供一些参数比如:Cookie,用户代理信息,主机名等等。(图中即从第二行到最后一行) 请求正文就放一些发送的数据,一般 GET 请求会将参数放在 URL 中,也就是在请求头中而请求正文一般为空,而 POST 请求将参数放在请求正文中。请求正文可以传一些 json 数据或者字符串等等。 GET 一般用于信息获取,比如刚才我们浏览百度首页,其使用的就是GET方法。 GET 请求一般不会产生副作用,它仅仅只是获取资源信息,就像数据库查询一样,不会修改、增加数据,不会影响资源的状态,并且对同一个 URL 的多次GET请求应该返回相同的结果。 而 POST 请求表示可能会修改服务器上的资源。

GET 请求和 POST 请求的区别: GET 和 POST 请求参数位置不同,从上面两个请求报文可以看出,GET 请求对应的参数放在 URL 中,而 POST 请求对应的参数放在 HTTP 请求主体中。(但是这只是一种约定,GET 请求中出现 Body 也是被允许的) 虽然 HTTP 协议的 RFC规范 并没有详细规定 URL 的最大字符长度限制,但实际上,在浏览器或者服务器中总会存在限制的,这就导致了 GET 请求中参数数量是有限的。 处于安全考虑,在一些涉及安全的请求比如:登录请求需要用 POST 提交表单,而GET 请求一般用来获取静态资源。 GET 请求可以被缓存,可以被收藏为书签,但 POST 可以被缓存,但不能被收藏为书签。 GET 请求的参数在 URL 中,因此绝不能用 GET 请求传输敏感数据。POST 请求数据则写在 HTTP 的请求头中,安全性略高于 GET 请求。

HTTP响应

HTTP 响应是服务器在客户端发送 HTTP 请求后经过一些处理而做出的响应,HTTP 响应和 HTTP 请求相似,也是由三个部分构成。分别是:状态行,响应头(Response Header),响应正文。 下面是一个 HTTP 响应的例子:

HTTP 响应中包含一个状态码,用来表示服务器对客户端响应的结果。

状态码一般由3位构成:

1xx : 表示请求已经接受了,继续处理。2xx : 表示请求已经处理掉了。3xx : 重定向。4xx : 一般表示客户端有错误,请求无法实现。5xx : 一般为服务器端的错误。

比如常见的状态码:

200 OK 客户端请求成功。301 Moved Permanently 请求永久重定向。302 Moved Temporarily 请求临时重定向。304 Not Modified 文件未修改,可以直接使用缓存的文件。400 Bad Request 由于客户端请求有语法错误,不能被服务器所理解。401 Unauthorized 请求未经授权,无法访问。403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因。404 Not Found 请求的资源不存在,比如输入了错误的URL。500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求。503 Service Unavailable 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。

知道了 HTTP 请求和响应后,一个完整的流程一般是这样的:

通常,由 HTTP 客户端发起一个请求,建立一个到服务器指定端口(默认是 80 端口)的 TCP 连接。HTTP 服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。

HTTP头信息

HTTP 请求头:

比如以请求百度首页为例:

Accept:指定客户端能够接收的内容类型,如常见的 text/html 等,最后返回的百度首页也是个 HTML 文件。

Accept-Encoding:表示浏览器有能力解码的编码类型。

Accept-Language:表示浏览器所支持的语言类型。(这里指中文、简体中文和英文)Cache-Control:指定请求和响应遵循的缓存机制。(这里表示不需要缓存)Connection:表示是否需要持久连接。(HTTP 1.1 默认进行持久连接即为 keep-alive, HTTP 1.0 则默认为 close)Cookie:用于会话追踪,在本文后面就继续介绍。Host:表示请求的服务器网址User-Agent:用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户端使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

还有另外还有一些常见的请求头:

Content-Length: 请求的内容长度Referer: 先前访问的网页的地址,当前请求网页紧随其后,说明你是先前是从哪个网址点击访问到该页面的,如果没有则不填。Content-Type:内容的类型,GET 请求无该字段,POST 请求中常见的有 application/x-www-form-urlencoded 为普通的表单提交,还有文件上传为 multipart/form-data

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。