HTTP协议

计算机网络体系结构分层

1856419-c69d60eeeebadd37.png

TCP/IP 通信传输流

利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从链路层往上走。如下:
1856419-b34cff2c02fcca06.png

TCP/IP 通信传输流

  • 首先作为发送端的客户端在应用层(HTTP 协议)发出一个想看某个 Web 页面的 HTTP 请求。
  • 接着,为了传输方便,在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
  • 在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。
  • 接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的 HTTP请求。

如图所示:
1856419-bfaf1b883618ecb4.png

HTTP 请求

"""
超文本传输协议 用来规定服务端和浏览器之间的数据互换的格式...

该协议你可以不遵循但你写的服务端就不能被浏览器正常访问 你就自己跟自己玩
你就自己写客户端 用户想要使用 就下载你专门的app即可 
"""
# 四大特性
  1.基于请求响应
  2.基于TCP/IP作用于应用层之上的协议
  3.无状态
    不保存用户信息
    eg:一个人来了一千次 你都记不住 每次都当他如初恋
    由于HTTP协议是无状态的 所以后续出现了一些专门用来记录用户状态的技术
        cookie、session、token...
  4.无/短链接
    请求一次我响应一次 之后我们两个就没任何链接和关系了
      长链接:双方建立连接后默认不断开 websocket

# 请求数据格式
  请求首行(标识HTTP协议版本,当前请求方式)
  请求头(一大堆k,v键值对)
  (这里还有\r\n不能省略)
  请求体(并不是所有的请求方式都有get没有post有,存放的是post请求提交的敏感数据)

# 响应数据格式
  响应首行(标识HTTP协议版本,响应状态码)
  响应头(一大堆k,v键值对)
  (这里还有\r\n不能省略)
  响应体(返回给浏览器展示给用户看的数据)

# 响应状态码
  用一串简单的数字来表示一些复杂的状态或者描述性信息
  1XX:服务端已经成功接收到了你的数据正在处理,你可以继续提交额外的数据
  2XX:服务端成功响应了你想要的数据(200 OK请求成功)
  3XX:重定向(当你在访问一个需要登陆之后才能看到的页面 你会发现会自动跳到登陆页面)
  4XX:请求错误
      404:请求资源不存在
      403:当前请求不合法或者不符合访问资源的条件
  5XX:服务器内部错误(500)

# 请求方式
  1.get请求
    朝服务端要数据
    eg:输入网址获取相应的内容
  2.post请求
    朝服务端提交数据
    eg:用户登录 输入用户名和密码之后 提交到服务端后端做身份校验

# url:统一资源资源定位符(大白话 网址)
最后修改:2021 年 02 月 15 日 11 : 20 PM
如果觉得我的文章对你有用,请随意赞赏