首页 > 其他分享 >【网络原理】——HTTP请求头中的属性

【网络原理】——HTTP请求头中的属性

时间:2024-10-24 16:48:25浏览次数:3  
标签:body 浏览器 form HOST 头中 Cookie HTTP UA 属性

8e19eee2be5648b78d93fbff2488137b.png

阿华代码,不是逆风,就是我疯

你们的点赞收藏是我前进最大的动力!!

希望本文内容能够帮助到你!!

目录

一:HTTP请求头

1:HOST

2:Content-Length

3:Content-Type

(1)请求中常用的格式

①application/json

②application/x-www-form-urlencoded

③multipart/form-data

(2)响应中常用格式

4:User-Agent(UA)

(1)故事

(2)UA的作用

5:Referer

6:Cookie

(1)引入

(2)Cookie有关结论

①Cookie从哪来

②Cookie到哪去

③Cookie中存什么

④Cookie如何组织

⑤Cookie的用途


一:HTTP请求头

1:HOST

表示服务器主机地址和端口

一般情况下,URL中的HOST与请求头中HOST是相同了。

但是也有特殊情况,URL中的HOST指向的是一个代理服务器,请求头中的HOST指向的是最终的IP。

2:Content-Length

表示body中的数据长度

HTTP底层也是基于TCP,连续传输多个HTTP数据报,接收方的接收缓冲区中就会累计多个包的数据,就容易发生“粘包问题”

通过这个长度来处理“粘包问题”——明确包和包之间的边界

如果是没有body的请求/响应(例如GET),直接使用空行作为分隔符;

如果有body,就从空行开始读取body,长度取决于Content-Length

3:Content-Type

上一篇文章说过,body中的数据格式有多种,也可以由程序员自己设置。这里的Content-Type表示body中的数据格式

(1)请求中常用的格式

①application/json

body就是json

②application/x-www-form-urlencoded

form-urlencode,称为表单:通过HTML中form标签构造出来的一种格式,这个格式的特点,是把query string放到body里了

(注:现在使用这种表单提交数据的方式越来越少了,json比较流行)

③multipart/form-data

form-data多用于上传文件时使用

(2)响应中常用格式

在进行抓包的时候,我们会发现有些目录颜色是很淡的。(Ctrl+F5刷新就可以不用读缓存,而从服务器进行读取)

这是由于浏览器和服务器之间要进行多次网络交互,为了提高效率,会把一些固定不变的内容:像css,图片,json.....这些放到浏览器本地的机械硬盘上进行缓存,后续在请求直接读缓存,减少网络交互。

注:在广域网下,万兆网卡的读写速度只有千兆,不如机械硬盘。在局域网下万兆网卡才能完全达到万兆。

4:User-Agent(UA)

User-Agent简称UA,存储了操作系统的信息,和浏览器的信息。描述了用户用什么设备上网

(1)故事

我们知道,计算机发展极快,就会有一个现象:同一个时间段内,新旧并存——例如有的浏览器只能显示文本,有的浏览器除了文本还可以加入了图片,有的浏览器甚至可以支持动画...........

对于用户来说,有些用户使用的还是9键老年机,只能显示文本的那种;有些用户已经用上智能机可以显示图片了。那么问题来了:程序员在写一个网站的时候是否要使用新特性呢?如果使用,老设备就打不开;不使用,这个网站又没有竞争力了。

UA就可以解决上述问题

(2)UA的作用

服务器可以针对UA的信息进行判定,如果用户使用老设备,页面就不返回新特性;如果使用新设备,就返回新特性

随着互联网的发展,浏览器都差不多了,手机也都是智能机了,那UA是不是就没有作用了呢?

②我们知道PC电脑端的设备屏幕很大,移动端手机屏幕很小。那么我们返回对应的页面也就有差异——UA中包含系统信息,就可以判断系统是PC还是mobile,然后合适的页面大小。

使用手机浏览器的时候,我们手动把UA修改成PC端的UA,就能访问电脑版的网页了

(有人可能回想了,就算返回移动端,手机与手机之间的屏幕大小也有差异啊,这就涉及到响应式布局了,通过一套代码适应不同尺寸的显示器——在CSS3中提供了一个特性“媒体查询”,可以感知到当前屏幕的尺寸,根据不同的尺寸,应用不同的格式,有兴趣的老铁可以深入研究一下)

5:Referer

描述了当前页面是从哪里来的

注:打开一个新的浏览器/点击收藏夹,打开的网页,此时抓的包是没有referer

举个例子:我们打开像搜狗,百度这些网页进行搜索的时候,往往会蹦出来好些广告,用户点击这些广告,搜狗就能赚米,referer就能起到一个记录一个点击是从哪里来的,统计次数,广告爸爸发米~。为了避免referer被篡改,就引入了HTTPS中的SSL加密协议。

SSL把header和body进行加密,传输的时候就是密文了,所以知道今天,我们在网络上看到的网站大多都是https

6:Cookie

Cookie是浏览器中持久化存储数据的一种机制,是报头中非常重要的属性

(1)引入

浏览器作为电脑上的一个程序,可以通过调用操作系统中相关文件的API,来读写本地磁盘文件,但是为了避免黑客做出来恶意网页攻击电脑,网页一般是被禁止读写访问操作的。

但是像有些需要登录操作的网页就需要储存(读写)信息了,所以浏览器退而求其次,给网页提供这样的API——可以有限度的存储数据,但是不能随意的访问文件系统——常见的像Cookie,LocalStorage,IndexDB.

(2)Cookie有关结论

①Cookie从哪来

第一次访问浏览器(首次登录/访问成功后),服务器返回给浏览器的。

②Cookie到哪去

Cookie会存储在浏览器本地主机的硬盘中,后续每次访问服务器都会带上Cookie。不同的客户端,保存的Cookie也是不同的——即使是同一个主机使用不同的浏览器在登录页面操作,Cookie也不同

③Cookie中存什么

键值对的数据,程序员自定义

④Cookie如何组织

在硬盘本地保存,按照不同的域名为维度分别存储

⑤Cookie的用途

用来在客户端保存数据,最主要的保存用户的身份标识,服务器就可以通过标识来区分用户,而一些业务数据一般是存储在服务器中的

标签:body,浏览器,form,HOST,头中,Cookie,HTTP,UA,属性
From: https://blog.csdn.net/2301_80133875/article/details/143205715

相关文章

  • 大话网络协议:HTTPS协议和HTTP协议有何不同?为什么HTTPS更安全
    大家现在访问网络,浏览网页,注意一下的话,网址前面基本上都是一个https://的前缀,这里就是说明这个网址所采用的协议是https协议。那么具体应该怎么理解https呢?本文我们就力争能清楚地解释明白这个我们目前应该最广的协议。理解HTTP协议要解释https协议,当然首先应该......
  • VUEJS实例中DATA属性的三种写法及区别是什么
    Vue.js是一种流行的JavaScript前端框架,用于构建交互式的用户界面。VUEJS实例中DATA属性的三种写法及区别是:1、独立性;2、推荐性;3、ES6语法。其中,独立性是指,使用函数返回一个对象的写法确保了每个组件实例都拥有独立的数据,不会相互影响。而直接使用对象声明DATA属性的写法会导致数......
  • XMLHttpRequest和Fetch文件上传
    XMLHttpRequest实现文件上传//XHR文件上传可以查看进度constuploadBtn=document.querySelector(".upload")uploadBtn.onclick=function(){//1.创建对象constxhr=newXMLHttpRequest()//2.监听结果xhr.onload=function(){......
  • k8s 使用 containerd 作为容器运行时拉取 http 的 harbor 私有仓库镜像
    目录版本介绍报错内容解决方法主配置文件修改创建镜像仓库配置备注版本介绍k8s:v1.28.2containerd:1.6.33报错内容我的harbor用的是http的,因为是内网自己用,就没有配置https了,于是配置好镜像拉取的凭据,pod拉取镜像会有以下的报错Failedtopullimage"harbor.de......
  • HTTP 管道
    HTTP管道2024-10-24队头阻塞,多路复用,QUIC外围技术在单个TCP连接上:不使用HTTP管道,那么就必须等待上一次请求响应后,才能发送下一次请求.使用HTTP管道后,就不需要等待上一次请求响应,就可以直接发送下一次请求.队头阻塞虽然HTTP管道允许请求可以连......
  • https免费nginx证书
    快捷阅读:先安装好nginx,并配置好80端口的正常访问#安装Nginxyuminstall-ynginx#设置开机启动systemctlenablenginx#开启nginxsystemctlstartnginx#重启nginxsystemctlrestartnginx#nginx重新加载配置文件systemctlreloadnginx#新增nginx网站配置......
  • let 和 const 与 var 的区别;什么是同源策略?简述 HTTP 请求的过程
    同源策略是一种安全机制,它是浏览器对JavaScript实施的一种安全限制。所谓“同源”是指域名、协议、端口号均相同。同源策略限制了一个页面中的脚本只能与同源页面的脚本进行交互,而不能与不同源页面的脚本进行交互。这是为了防止恶意脚本窃取数据、进行XSS攻击等安全问题。......
  • 由uint8_t USART_RX_BUF[USART_REC_LEN] __attribute__((at(0X20001000)));属性操作引
    在GCC编译器中,除了__attribute__((at(x))),还有许多其他属性可用于控制变量和函数的行为。以下是一些常见的属性及其用途:1.section将变量或函数放置在特定的段中。例如,将变量放在.data段中:intmy_var__attribute__((section(".my_section")));2.aligned指定变......
  • 【网络原理】——HTTP协议、fiddler抓包
     阿华代码,不是逆风,就是我疯你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!!目录一:认识HTTP1:超文本传输2:发展历史3:HTML4:交互过程5:报文格式6:HTTP请求格式7:HTTP的响应格式二:fiddler1:介绍2:设置三:URL1:认识URL2:URL完整结构3:URLencode四:HTTP首行方......
  • HTTP协议
    什么是HTTP?◼什么是HTTP呢?我们来看一下维基百科的解释:超文本传输协议(英语:HyperTextTransferProtocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议;HTTP是万维网的数据通信的基础,设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法;通过HTT......