HTTP协议(1)-计算机网络

目录

HTTP 是什么?

理解 HTTP 协议的工作过程

HTTP 协议格式

协议格式总结

HTTP 请求 (Request)

认识URL

URL 基本格式

认识 "方法" (method)

1. GET 方法

2. POST 方法

3.GET 和 POST的区别

认识请求 "报头" (header)


HTTP 是什么?

HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议.

HTTP 往往是基于传输层的 TCP 协议实现的. (HTTP1.0, HTTP1.1, HTTP2.0 均为TCP, HTTP3 基于 UDP 实现)

理解 HTTP 协议的工作过程

当我们在浏览器中输入一个 "网址", 此时浏览器就会给对应的服务器发送一个 HTTP 请求. 对方服务器收 到这个请求之后, 经过计算处理, 就会返回一个 HTTP 响应.

 事实上, 当我们访问一个网站的时候, 可能涉及不止一次的 HTTP 请求/响应 的交互过程.

HTTP 协议格式

HTTP 是一个文本格式的协议. 可以通过 Chrome 开发者工具或者 Fiddler 抓包, 分析 HTTP 请求/响应的 细节.(我们呢这里默认大家有fiddler)

上边那部分是客户端进行的 HTTP 请求,下边部分是服务器端给出的 HTTP响应.

 空行就是报头与正文之间的分隔标志.

协议格式总结

为什么 HTTP 报文中要存在 "空行"?

因为 HTTP 协议并没有规定报头部分的键值对有多少个. 空行就相当于是 "报头的结束标记", 或者 是 "报头和正文之间的分隔符".

HTTP 在传输层依赖 TCP 协议, TCP 是面向字节流的. 如果没有这个空行, 就会出现 "粘包问题".

HTTP 请求 (Request)

认识URL

URL 基本格式

平时我们俗称的 "网址" 其实就是说的 URL (Uniform Resource Locator 统一资源定位符).

互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它.

对于我们而言:我们要关注的就是:

  • 域名
  • 端口号
  • 文件路径
  • 查询字符串

认识 "方法" (method)

1. GET 方法

GET 是最常用的 HTTP 方法. 常用于获取服务器上的某个资源. 

2. POST 方法

POST 方法也是一种常见的方法. 多用于提交用户输入的数据给服务器(例如登陆页面).

3.GET 和 POST的区别

上边我们看到了,GET和POST,两者的使用都可以相互替换,那么两者的区别是什么呢?

二者并没有本质的区别,但是又一些细节的差别:

一般情况下,GET请求,没有请求正文,有查询字符串.

                   POST请求,有请求正文,没有查询字符串.

GET一般用来获取数据, POST一般用于提交数据.

GET请求一般是幂等的,POST请求一般是不幂等的.(幂等:每次搜索相同的内容 搜出来的结果是一样的)

GET可以被缓存,POST不能被缓存.(由于GET是幂等的,所以缓存,POST不是幂等的,因此不必缓存)

认识请求 "报头" (header)

header 的整体的格式也是 "键值对" 结构. 每个键值对占一行. 键和值之间使用分号分割.

  • Host: 主机,表示服务器主机的地址和端口.
  • Content-Length: 请求正文的长度
  • Content-type: 请求正文的数据格式
  • User-Agent(简称UA): 表示浏览器/操作系统的属性.

  • Referer: 表示从哪个页面跳转过来的.  应用广泛,例如广告领域 或 数据打点,数剧分析等.                         如果直接在浏览器中输入URL, 或者直接通过收藏夹访问页面时是没有 Referer 的.
  • Cookie: Cookie 中存储了一个字符串, 这个数据可能是客户端(网页)自行通过 JS 写入的, 也可能来自于服务器(服务器在 HTTP 响应的 header 中通过 Set-Cookie 字段给浏览器返回数据).

往往可以通过这个字段实现 "身份标识" 的功能

Cookie的存在就是因为,浏览器是无状态的,Cookie是客户端,Session是存在服务器上的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值