应用层协议--HTTP

目录

一.HTTP是什么?

二.HTTP的请求和响应

a.请求:

b.响应:

三.URL

四.Header

1.Host

[2. Content-Length](#2. Content-Length)

[3. Content-Type](#3. Content-Type)

[a. 请求](#a. 请求)

[b. 响应](#b. 响应)

[4. Referer](#4. Referer)

[5. User-Agent](#5. User-Agent)

[6. Cookie](#6. Cookie)


一.HTTP是什么?

HTTP是一种应用层协议,其中应用层协议还有很多比如HTML,URL等

应用场景:

1.网页和后台服务器之间的交互

2.app和后台服务器之间的交互

二.HTTP的请求和响应

a.请求:

1)首行(HTTP请求的第一行,有三个部分信息,三个部分使用空格进行分割)

第一个部分信息:GET ,是HTTP 请求的"方法"

第二个部分信息:URL 唯一资源定位符,描述了一个资源在网络上的位置

第三个部分信息:版本号

2)请求头(header)

是一个键值对结构的数据,每个键值对都独占一行,键和值之间通过 :空格来区分

这里的键值对都属于标准规定的

3)空行

请求头结束的标记

4)正文( body)

正文有的有,有的没

b.响应:

1)首行(包含了版本号,状态码,状态码描述)

2)响应头(header)

也是键值对结构,每个键值对独占一行,键和值之间通过:空格来区分

此处的键值对也是有标准规定的

3)空行

响应头结束的标记

4)正文(body)

响应的正文比较多

三.URL

我们来看一下HTTP 请求首行中的URL 是这么个事

URL是统一资源定位符,描述了某个资源在网络上所属的位置

比如我在大学买凉皮

http://锦绣餐厅:8080/凉皮/火鸡面凉皮?凉面=多放&辣椒少放

服务器地址 端口 带层次的文件路径 查询字符串(query string)

query string 中的键值对都是程序猿自定义的

四.Header

我们知道Header中都是一些键值对的结构,这里介绍最重要的一些键值对。

1.Host

这个就是服务器的域名 , 就比如 www.baidu.com

2. Content-Length

这个是 body 中数据的长度

这里有个比较重要的知识点:前面涉及到的TCP 粘包问题

HTTP 在传输层 就是 基于 TCP的

如果使用同一个TCP进行连接,传输多个HTTP数据包,此时多个HTTP数据包就会在TCP的接收缓冲区中挤在一起

那么接收方进行解析的时候,该怎么样清楚 HTTP 数据包的界限?

对于GET 这种通常没有 body 的请求,直接可以使用 空行(分隔符)

对于 POST 这种有 body 的请求,就需要结合 空行和 Content-Length

3. Content-Type

body中数据 的格式是非常多的

这里分别来看 请求 和 响应 都有哪些格式

a. 请求

  1. json

  2. from 表单的格式

  3. from - data 的格式

b. 响应

  1. html

  2. css

  3. js

  4. json

  5. 图片

4. Referer

Referer描述了当前页面是从那个页面跳转过来的

通常用于广告网页计费,在广告界面,可以进行抓包,看到这个广告网页时从什么网站跳转过来的

5. User-Agent

UA 主要是用来区分 PC 端 还是移动端

在很久之前,网页很简单就是仅支持文字,浏览器的功能也很简单

后来,网页的内容开始丰富了,随之浏览器的功能也开始逐渐升级

这个升级的过程是很快的,新的浏览器诞生之后,并不是立即就占领市场,而是在相当一部分时间里,新浏览器和旧浏览器并存的。

网站的开发者就需要考虑到,我写的网页是否要兼容旧版浏览器呢?

那么就可以用 UA 来获取浏览器版本 , 来看看是否兼容

Cookie可以认为是浏览器 本地存储数据的一种方式

这些数据放到本地文件中更为合适

但是考虑到安全性,是进制网页直接访问电脑的文件系统的

网页代码中也就无法生成一个硬盘的文件来存储数据了。

为了保证安全性,又能进行存储数据,于是就引入了Cookie

也是按照硬盘文件的方式进行保存的,但是浏览器把操作文件进行了封装,网页只能往Cookie 中 存储键值对

相关推荐
Delite80212 分钟前
摆脱实验室束缚:便携式卡尔费休微量水分检测技术与现场应用解析
大数据·网络·人工智能
ACP广源盛1392462567336 分钟前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
明月_清风1 小时前
MCP vs ACP vs LSP:AI 时代三大协议的「三足鼎立」
人工智能·网络协议·agent
ACP广源盛139246256731 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
我爱cope2 小时前
【计算机网络 | 传输层3:TCP 协议概述:面向连接、可靠传输到底意味着什么?】
网络·网络协议·学习·tcp/ip·计算机网络·传输层
OIDCAT3 小时前
国产USB转千兆网卡芯片CH398-RTL8153国产替代实测与选型
网络·嵌入式硬件·智能硬件·国产芯片·usb转千兆网卡
M--Y5 小时前
Docker数据持久化与网络架构
网络·docker·架构
myy-learn5 小时前
30-HTTP协议
网络·网络协议·http
开开心心就好6 小时前
免费刷题软件推荐,支持导入题库自动判题
网络·网络协议·tcp/ip·jupyter·智能手机·电脑·idea