HTTP

HTTP协议是一种使用明文数据传输的网络协议(超文本传输协议)。
HTTPS协议可以理解为HTTP协议的升级,就是在HTTP的基础上增加了数据加密(加密传输协议)

HTTP 的工作流程

  1. 和服务器建立链接
  2. 建立链接后,发送一个请求给服务器(请求)
  3. 服务器接受到请求以后进行相应的处理并给出一个回应(响应)
  4. 断开于服务器的链接
1:和服务器建立连接

建立链接的主要步骤叫做 三次握手

  • 1:客户端发送一个消息给到服务端
  • 2:服务端回给客户端一个消息
  • 3:客户端再回给服务端一个消息
2:发送一个请求

每一个请求都会有一个 请求报文,请求报文 中会包含我们所有的请求信息,我们的请求报文中会包含几个东西

1:请求行

POST /user HTTP/1.1
# POST 请求方式
# /user 请求URL(不包含域名)
# HTTP/1.1 请求协议版本

2:请求头(请求头都是键值对的形式出现的)

user-agent: Mozilla/5.0 # 产生请求的浏览器信息
accept: application/json # 表示客户端希望接受的数据类型
Content-Type: application/x-www-form-urlencoded # 客户端发送的实体数据格式
Host: 127.0.0.1 # 请求的主机名(IP)

3:请求空行(请求头和请求主体之间要留一个空白行)
4:请求体(本次请求携带的数据)

# GET 请求是没有请求体数据的
# POST 请求才有请求体数据
3:服务器接受一个简历,并给出一个响应

每一个响应都会有一个 响应报文,响应报文 中会包含我们所有的响应信息,响应报文 中会包含几个信息

1:状态行

HTTP/1.1 200 OK
# HTTP/1.1 服务器使用的 HTTP 协议版本
# 200 响应状态码
# OK 对响应状态码的简单解释

2:响应头

Date: Jan, 14 Aug 2019 12:42:30 GMT # 服务器时间
Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45 # 服务器类型
Content-Type: text/html # 服务端给客户端的数据类型
Content-Length: 11 # 服务端给客户端的数据长度

3:响应体

hello world
# 服务端给客户端的响应数据
4:断开于服务端的链接

我们的断开链接是基于 TCP/IP 协议的 四次挥手

  • 1:客户端发送一个我要断开的消息给服务端
  • 2:服务端接受到以后发送一个消息告诉客户端我已经进入关闭等待状态
  • 3:服务端再次发送一个消息告诉客户端,这个是我的最后一次消息给你,当我再接受到消息的时候就会关闭
  • 4:客户端接受到服务端的消息以后,告诉服务器,我已经关闭,这个是给你的最后一个消息

常见的 HTTP 响应状态码

100 ~ 199

  • 一般我们看不到,因为表示请求继续
    100: 继续请求,前面的一部分内容服务端已经接受到了,正在等待后续内容
    101: 请求者已经准备切换协议,服务器页表示同意

200 ~ 299

  • 2 开头的都是表示成功,本次请求成功了,只不过不一样的状态码有不一样的含义(语义化)
    200: 标准请求成功(一般表示服务端提供的是网页)
    201: 创建成功(一般是注册的时候,表示新用户信息已经添加到数据库)
    203: 表示服务器已经成功处理了请求,但是返回的信息可能来自另一源
    204: 服务端已经成功处理了请求,但是没有任何数据返回

300 ~ 399

3 开头也是成功的一种,但是一般表示重定向
301: 永久重定向
302: 临时重定向
304: 使用的是缓存的数据
305: 使用代理

400 ~ 499

  • 4 开头表示客户端出现错误了
    400: 请求的语法服务端不认识
    401: 未授权(你要登录的网站需要授权登录)
    403: 服务器拒绝了你的请求
    404: 服务器找不到你请求的 URL
    407: 你的代理没有授权
    408: 请求超时
    410: 你请求的数据已经被服务端永久删除

500 ~ 599

  • 5 开头的表示服务端出现了错误
    500: 服务器内部错误
    503: 服务器当前不可用(过载或者维护)
    505: 请求的协议服务器不支持

每一个 HTTP 请求都会在请求头中携带 cookie 到服务端 每一个 HTTP 响应都会在响应头中携带 cookie 到客户端 也就是说,cookie 是不需要我们手动设置,就会自动在 客户端 和 服务端之间游走的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值