服务器
  BzkyYTGW6Epa 2023年11月12日 20 0

 好久之前有一次 面试,问我http请求有哪几部分组成,我毫不犹豫回答:请求头和请求体,一想,没错啊,请求头放key:value格式的信息,包括编码,主机端口,语言等一大段信息,请求体就是传递的参数了,然后面试官问:还有呢?我没想出来还有什么,后来回来查了下发现,原来还有个一直容易被忽略的请求行;

     现在有空就复习下http请求,到底包含了那些部分,每个部分是什么内容:

http一共包括三个部分

Request Line:请求行

Header:请求头

Request Body:请求体

下面是图解:(以HTTP1.1为例,他和1.0和2.0略有区别)

编辑

请求行:请求类型(POST还是GET,如果是restful风格的接口还会有DELETE,PUT方法),请求的url(它与下面的Host组成统一资源定位符,意思就是互联网上可以通过这个url唯一定位到的),HTTP协议(HTTP版本);

请求头:Accept:顾名思义就是接受的意思,他的值内容是描述发送这个http请求的发送端希望得到的信息类型是什么格式的,顺便说下下面的Content-Type(内容类型),他的意思是发送端发送这次http请求的数据格式。加起来就是Content-type的类型发送信息,用Accept的类型接受信息。

            Referer: 翻译过来叫推荐人,这个平时用不到,但用处还是很大的,简单来说作用就是告诉服务端你这个请求是从哪个页面来的,正因为有这个属性,百度引流,统计资源才能实现,可以知道你是通过百度推广的页面进入的,然后就可以收费,还有重要一点是用来防黑,之前做过公安局的一个网站就要求服务端要获取referer的值判断是否从正常页面进入的,以防止黑客非法手段发送这个请求实现无需登录就可以修改资源的目的。

            Accept-Language:不用说也知道,接受的语言类型是哪种

           User-Agent:翻译为用户代理,实际上就是发送这个请求的人是用什么发送的,如果是谷歌浏览器会有Chrome字样,如果是IE会有IE的字样,同时还会有浏览器的版本号等信息;有个有趣的现象,不管什么浏览器开都都是Mozilla开头,这个有兴趣的可以去搜搜(这里简单说下:关于浏览器初期争抢浏览器份额,IE和网景公司的,先是网景的Mozilla浏览器支持框架,其他浏览器不支持,于是网站管理员探测User-Agent包含Mozilla的发送带框架的,其他的不发送,后来微软开发浏览器IE也支持框架,但很多时候收不到带框架的页面,于是在User-Agent值里加上Mozilla后也能收到带框架的页面了,然后。。延续下来)

          Content-Type:上面已经介绍过,不多说

          Host:发送这个请求的主机地址和端口是多少,也就是ip和端口号

          Content-Length:本次请求发送的数据大小

          Connection:表名客户端想要保持连接打开,HTTP1.1默认使用一个持久连接keep-live,可以节约资源值还可以是close,

          Cache-Control:可缓存,如果设置no-cache,就不会缓存,每次都重新发送请求,可以设置缓存,如果设置为缓存,那么再次发送这个请求就不会去服务器,而是从缓存里获取

          Cookie:不用说,做开发的都知道是认证的信息,经常用于登录认证,

请求体:请求体,这才是这次请求的真实数据,实实在在发送请求到服务器的数据,但是一般GET请求,数据是放在url的后面,POST请求的数据才会放在请求体中,


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
BzkyYTGW6Epa
作者其他文章 更多

2023-11-12

2023-11-12

2023-11-12

2023-11-12

2023-11-12

2023-11-12

2023-11-02

2023-11-02

2023-11-02