http请求

      本篇文章将从记录下 http 请求相关的一些内容。

HTTP

      http 是计算机通过网络进行通信的规则。http 是一种无状态的连接,也就是说 http 不建立持久的连接,服务器端不保留连接的相关信息。比如:web 像服务器发送请求,服务器响应请求后,连接就被关闭了,处理的过程是没有记忆的,如果后续的处理要之前的一些传递信息,就要重新发送请求。

HTTP 的完整请求过程

      一个完整的 HTTP 请求,通常有 7 个步骤。

1.建立 TCP 连接

      就是上计算机网络的时候,老师经常挂在嘴上的三次握手,三次握手。第一次 🤝:主机向服务器发送建议连接的请求,第二次 🤝:服务器收到请求之后发送同意连接的信号,第三次 🤝:主机收到同意连接的信号后,向服务器发送确认信号。这个过程就采用了 TCP 连接。若其中一方没有收到确认的信号,TCP 协议就会要求再次发送信号。

2.WEB 浏览器向 WEB 服务器发送请求命令

      一旦建立了 TCP 连接,Web 浏览器就会向 Web 服务器发送请求命令

3.WEB 浏览器发送请求头信息

      Web 浏览器向 Web 服务器发送请求命令之后,需要将一些请求头、请求行和请求正文等头信息发送给服务器。接着浏览器再发送空白行来通知服务器,它结束了头信息的发送。

4.WEB 服务器应答

      Web 浏览器向服务器发出请求后,服务器会发出类似:”我收到了“的信号。

5.WEB 服务器发送应答头信息

      以 ”Content-Type“ 应答头信息的格式发送用户所请求的实际数据

6.WEB 服务器关闭 TCP 连接

       如果浏览器或者服务器没有在头信息中加入”Connection:keep-alive“(TCP 连接在发送后将仍然保持打开状态,浏览器可以继续通过相同的连接发送请求。目的是为了节省每个请求建立新连接所需的时间,从而节约带宽)。一旦 Web 服务器向浏览器发送了请求数据,就会关闭 TCP 连接。

HTTP 请求组成

1.HTTP 请求的方法或动作:比如是 GET 请求还是 POST 请求
2.正在请求的 URL,我们总是要知道请求的地址是啥把
3.请求头,包含了一些客户端环境信息,身份验证信息等等
4.请求体,也就是请求正文,请求正文中可以包含客户提交的查询字符串信息,表单信息等等

注意:请求头和请求体中有个空行表示:请求头已经结束了,接下来是请求体
接下来我们来看看一个标准的 http 请求


http 请求

GET 和 POST 的区别

GET

      get 是默认的 http 请求方法,get 请求一般是安全的,用于获取信息,而不是修改信息。换句话说,get 请求一般是用来查询,我们的查询不会影响数据本身。一般不用 get 请求来新建和修改操作。get 请求发送的信息对任何人都是可见的。因为所有的变量名和值都显示在 url 当中。也就是说 get 请求是用 url 来传递参数的。就因为如此,get 请求对发送的信息是有数量限制的。虽然变量是明文的,对任何人都可见,但是也有好处,就是把页面添加在书签里就可以使用。说了这么多,我们来总结下 get 把。

1.一般用于信息的获取
2.使用 url 来传递参数
3.对发送的信息有数量限制,一般在 2000 个字符

POST

      相对于 get 请求,post 请求就安全很多。从字面理解,posy 是向服务器发送一些信息,一般用于修改服务器上的资源。posy 一般用于从表单发送一些数据,这些数据并不在 url 里显示,对其他人是不可见的。所有的名称和值都会被嵌入 http 的请求体中。它对发送信息的数量没有限制。用简短的语句归纳下 post 吧。

1.一般用于修改服务器上的资源
2.对所发送的信息无数量限制

HTTP 响应组成

1.一个数字和文字组成的状态码,用来显示请求成功还是请求失败
2.响应头,响应头和请求头一样,包含很多有用的信息。例如服务器的类型、日期时间、内容类型和长度等等。
3.响应体,也就是响应正文。例如从服务器传过来的字符串、代码等等。

接下来我们来看看一个标准的 http 响应


http 响应

HTTP 状态码

      状态码的好处就是:有助于外部程序调试的效率和准确性。HTTP 状态码由 3 位数字构成,其中首位数字定义了状态码的类型。

1XX:信息类,表示收到 WEB 浏览器的请求,正在进一步的处理中
2XX:成功,表示用户请求被正确接收,理解和处理。例如:200 OK
3XX:重定向,表示请求没有成功,用户必须采取进一步的动作
4XX:客户端错误,表示客户端提交的请求有错误。最常见的就是:404 NOT FOUND,代表客户端请求地址不存在。
5XX:服务器错误,表示服务器不能完成对 HTTP 请求的处理。最经常出现的就是 500 错误,出现这个错误,大家都很头疼。

Copyright ©2019 guowj All Rights Reserved.

访客数 : | 访问量 :