HTTP/TCP/IP详解(get/post区别)

在这里插入图片描述

一、HTTP(超文本传输协议)

1.1、定义

用于从万维网服务器传输资源到本地浏览器的传送协议。HTTP协议是基于TCP的应用层协议,
他不关心数据传输的细节主要是用来规定客户端和服务端的数据传输格式。默认端口是80。

1.2、HTTP请求报文

请求报文主要由请求行、请求头、空一行、请求正文(请求体)“get可能没有请求体”四个部
分组成。
请求方法备注
GET请求资源
POST提交资源
Head获取响应头
PUT替换资源
OPTION允许客户端查看服务器的性能
DELETE删除资源
状态码备注
1XX提示信息,请求被接收成功
2XX请求被成功处理,200
3XX重定向相关;
301永久性重定向:比如说建设一个网站后,将网站的url变换了,重新申请一个域名,但仍希望用户能够通过之前的url访问到,就可以在下面做一个重定向新的url。
302临时性重定向:比如用户在未登录时访问个人中心页面,这时可以临时重定向到登录的url。
304Not Modified:当客户端拥有可能过期的缓存时,会携带缓存的标识etag、时间等信息询问服务器缓存是否可复用,304告诉客户端可以复用缓存。
4XX客户端错误;
400请求出错:因为语法格式有误,服务器无法理解此请求。不做修改的话,客户程序无法重复此请求。
401未授权:请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。
403没有访问权限:系统中某些页面只有在某些权限下才能访问,当用户去访问了一个本身没有访问权限的url,回报403错误。
404没有对应资源:一般是输入了一个url,这个url并不合法,找不到对应路径。
405不允许此方法,对于请求所标识的资源,不许云使用请求行中所指定的方法。(get/post/put/delete/请求用混淆了,更正即可)
5XX服务端错误;
500服务器错误,比如服务器某一个函数代码出错了,没有捕获异常,这时候会报500错误。指的是服务器内部错误,Web服务器不能执行此请求。请稍后重试此请求。
501未实现,web
503服务器当前不能处理客户端的请求

二、get、post请求的区别

首先,GET和POST是http协议发送请求的两种方法,其本质都是进行TCP连接。

最基本的区别:

  • GET把请求参数包含在URL中,POST通过request body传递参数;

  • GET请求因为参数直接暴露在URL中,所以GET请求比POST更不安全;

  • GET请求是有长度限制的,但POST没有;

  • GET请求参数会完整的保留在浏览器的历史记录中,但POST不会保存;

  • 举例:

    • 我之前在网上有看过一篇博客,里面有个例子还挺有意思。在万维网世界中,TCP就像汽车,正常我们使用TCP来运输数据。但是如果路上跑的全是一模一样的汽车,整个万维网世界就会看起来一片混乱,一旦出现满载货物的汽车堵路,整个交通系统就会瘫痪。
    • 这个时候HTTP协议就诞生了。它给汽车运输设定了好几个服务类别,对应就是GET、POST、PUT、DELETE等方法。当执行GET、POST请求时,给汽车贴上GET\POST标签(method为GET\POST),二者的区别是,GET时将传输数据放在车顶(url)中,POST是将货物(数据)放到车厢里。
    • 其它的区别是根据运输公司的不同规则,也就是不同的浏览器。因为如果在车顶上无限的堆加货物,那么装货和卸货成本很高,所以浏览器会限制长度在2k字节;并且根据不同的浏览器的处理方式不同,有时候在GET方法里的request body中加了数据,有些浏览器依旧会处理这个数据,但有些就会直接忽略。
  • 重大区别:

    • GET产生一个TCP数据包。
    • POST产生两个TCP数据包。
    • GET请求,浏览器会把header和data一起发送出去,服务器响应200,请求成功;POST请求,浏览器先发送header,服务器响应100,再次发送data,服务器返回200,请求成功。但是火狐浏览器POST请求只发送一次。

三、网络模型

 计算机网络功能:数据通信、资源共享、负载均衡、高可靠性

3.1、OSI七层模型

  1. 物理层-数据链路层-网络层-传输层-会话层-表示层-应有层
  2. 数据具体传输流程:
    a. 物理层:首先,数据发送后,物理层会进行一些操作,比如线路配置、拆除一些特性等,将数据以比特(单位)流的形式进行传输;
    b. 数据链路层:把不可靠的信道转为可靠信道,将比特组成帧(单位),进行点到点的传输;(局域网、以太网)
    c. 网络层:将数据进行IP分组(单位),选择从源节点到目的节点的路径、控制等操作;(广域网)
    d. 传输层:确定端口,进行端对端的数据传输,以报文段(单位)的形式传送。

3.2、TCP/IP协议

  1. 三要素:语法、语义、时序

  2. TCP层数:网络接口层(物理层、数据链路层)、Internet层(网络层)、传输层、应用层(会话层、表示层、应用层)

  3. 网络层协议
    a. IP:源地址和目的地址的传送数据包,无连接、不可靠。
    b. ICMP:用于传递控制相关消息,确认网络是否有问题。
    c. ARP和RARP:地址解析协议,ARP将IP转为物理地址,RARP将物理地址转为IP地址。
    d. IGMP:网络组管理协议,支持主播、多播。

  4. 传输层协议
    a. TCP:可靠的、面向连接的,一般用于传输数量少,且可靠性要求高的场合。
    b. UDP:不可靠、无连接,数据传输率大,提高传输数量,一般用于话音、视频传送。

     TCP/UDP 均是以IP协议为基础进行封装的,TCP通过软件和增加协议的方式将IP协议转
     化为可靠、需连接的协议,但是传输速率会降低,UDP反之。
    

注:TCP三次握手、四次挥手解释,请查看我的另一篇博客。
[链接](https://blog.csdn.net/weixin_51641638/article/details/145262963?spm=1001.2014.3001.5502

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小黑cx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值