【JavaEE】_HTTP请求报头header

这篇具有很好参考价值的文章主要介绍了【JavaEE】_HTTP请求报头header。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. Host

2. Content-Length与Content-Type

2.1 Content-Length

2.2 Content-Type

3. User-Agent(UA)

4. Referer

5. Cookie


header的整体格式是“键值对”结构,一行是一个键值对,这些键值对都是HTTP定义好的、有特殊含义的。

常见的报头种类有:

1. Host

Host表示访问的服务器主机的地址与端口号(端口号可省略),或域名:

【JavaEE】_HTTP请求报头header,JavaEE,http,网络协议,网络

在此例中,首行中的URL与Host的信息是一致的,但也有可能不一致,

如在使用代理的情况下,Host的内容可能与URL的内容不一致;

2. Content-Length与Content-Type

只有当请求里有body部分才会有这两个属性,通常情况下GET请求没有body,POST请求有body

2.1 Content-Length

Content-Length描述的是body中数据的长度

注:前文TCP一文中已经描述过TCP传输过程中的粘包问题,原文链接如下:

【JavaEE】_传输层协议UDP与TCP-CSDN博客

HTTP在传输层是基于TCP实现的,当使用同一个TCP链接传输多个HTTP数据包时就会使得多个HTTP数据包在TCP接收缓冲区中挨在一起,接收方解析是需要明确HTTP数据包之间的边界:

对于GET(没有body)的请求,直接使用空行作为分隔符进行区分;

对于POST(有body)的请求,就需要结合空行和Content-Length进行区分

2.2 Content-Type

Content-Type描述的是body中数据的格式

在请求的body部分中可以选择的方式是非常多的,

请求中常见的格式有:json,form表单,form-data等格式

如json格式:

【JavaEE】_HTTP请求报头header,JavaEE,http,网络协议,网络

响应中常见的格式有:html,css,js,json,图片等等;

如html格式:

【JavaEE】_HTTP请求报头header,JavaEE,http,网络协议,网络

再如css格式:

【JavaEE】_HTTP请求报头header,JavaEE,http,网络协议,网络

再如js格式:
【JavaEE】_HTTP请求报头header,JavaEE,http,网络协议,网络

注:对于提交给服务器不同Content-Type的请求,服务器处理数据的逻辑是不同的;

同理,服务器返回给浏览器的数据,也需要设置合适的Content-Type,浏览器也会根据不同的Content-Type做出不同的处理;

3. User-Agent(UA)

以访问QQ邮箱网页版为例,请求如下:

【JavaEE】_HTTP请求报头header,JavaEE,http,网络协议,网络

UA描述了当前访问因特网的设备情况:包括操作系统的版本浏览器的版本

注:早期设置UA是为了区别新旧版本浏览器从而对不同版本的浏览器设置不同的响应格式,以保证新旧版本浏览器都能得到兼容。

而当今的浏览器之间的差距很小,此时UA的作用主要是用于区分PC端或移动端,一般这样的区别只是为了进行统计,而不会返回不同版本的页面,现在的前端开发有“响应式网页”的编程技术,以实现同一个html兼容不同的设备;

4. Referer

Referer用于描述当前页面是从哪个页面跳转来的

如果直接在地址栏输入URL或点击收藏夹中的按钮,这种请求都是没有Referer的

比如访问sogou.com后,搜索CSS,抓包请求如下:

【JavaEE】_HTTP请求报头header,JavaEE,http,网络协议,网络

5. Cookie

Cookie可以认为是浏览器在本地存储数据的机制

1. 浏览器的数据来自于服务器,服务器这边管理了一个网站的核心数据,但是在程序运行过程中也会有需要在浏览器这边存储一些数据,如上次登录时间、上次访问时间、用户身份信息、累计访问次数等临时性的数据。Cookie最终会返回给服务器,后续再请求这个服务器时,就会把Cookie中的内容自动带入到请求中,发送给服务器,服务器通过Cookie的内容进行一些逻辑的处理。

2. 浏览器为了考虑安全性,禁止网页直接访问用户的电脑文件系统网页代码无法直接生成一个硬盘的文件来存储数据,故而直接将数据存储到本地文件中是不可行的。

3. Cookie其实也是按照硬盘文件的方式保存的,但是浏览器对操作文件进行了封装,网页只能往Cookie中存储键值对(简单的字符串)

4. Cookie往往是从服务器返回的,或是页面自己生成的数据,Cookie是存储在浏览器所在的主机的硬盘上的,并且是按照域名为维度进行存储的,每个域名下可以存储各自的Cookie,彼此之间互不影响;

5. Cookie是按照键值对形式组织的,键与值之间用 ; 分隔,且键值对也是程序员自定义的;

6. 查看浏览器Cookie的方法:
【JavaEE】_HTTP请求报头header,JavaEE,http,网络协议,网络

【JavaEE】_HTTP请求报头header,JavaEE,http,网络协议,网络文章来源地址https://www.toymoban.com/news/detail-828029.html

到了这里,关于【JavaEE】_HTTP请求报头header的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx负载转发源请求http/https:X-Forwarded-Proto及nginx中的转发报头

    今天在排查服务器的问题时最后定位到服务器因为经过了运维这一层的处理,转发过来的请求不管用户请求的是https还是http,我们的proxy服务器收到的都是80端口上的http。于是联系相关部门了解有没有现成的可用的这样一个字段来获得这个值。公司用的也是标准报头,即X-Fo

    2024年02月16日
    浏览(47)
  • http请求header传中文怎么处理

    解决思路: 首先:header里传不了中文,传输以后会报错。 先将该中文进行一个编码处理,放到header的参数里,最后在代码里进行 该参数的解码。 1:对header的传参进行加码 2:将加码的参数当成请求的header请求后台 3:后台对该参数进行解码 4:返回前台,查看校验

    2024年02月15日
    浏览(27)
  • Chrome/Safari 浏览器怎么查看网络请求的 http 协议版本

    通过 Chrome 或者 Safari 浏览器的开发者工具查看网络请求后,发现只能看到 scheme 是 https,但是看不到 http 协议是 1.1 还是 2,亦或者是 http3 查看 http 请求 http 协议版本的方法是:鼠标右键表头中的任何一项,随后勾选上「Protocol」 随后可以看到新增了一列 Protocol,显示了 htt

    2024年02月15日
    浏览(34)
  • 【网络应用层协议】【HTTP】详解HTTP与HTTPS、POST 请求与 GET请求 、TCP与UDP、cookie和session的区别

    目录 1. HTTP和HTTPS的区别 2. POST 请求与 GET 请求区别 3. TCP与UDP的区别 4. cookie和session的区别

    2024年04月14日
    浏览(35)
  • 【JavaEE】HTTP请求的构造

    目录 1、通过form表单构造HTTP请求 2、通过JS的ajax构造HTTP请求 3、Postman的安装和简单使用 常见的构造HTTP请求的方式有一下几种: 直接通过浏览器的地址栏,输入一个URL,就可以构造一个GET请求 HTML中的一些特殊标签,也会触发GET请求,例如:link、script、img、a.... 通过form表单

    2024年02月17日
    浏览(33)
  • java在过滤器中为http请求加请求头header

            现在有一个需求场景:每一个请求我都需要在请求头里面加上token这个请求头,作为一种校验机制,传统的接口可以通过设置一个全局的变量,然后通过页面携带过来(大概就是先将我们的token放在session中,写一个服务用来获取session中的token,然后主页面用 ajax 调

    2024年02月12日
    浏览(28)
  • Tomcat:org.apache.coyote.http11.Http11Processor.service 解析 HTTP 请求 header 错误

    注意其中:HTTP请求解析错误 将 https 改成 http 即:http://localhost:8080/ (其中8080根据自己配置来更改,tomcat默认是8080) 修改后: 成功!! 具体原因俺也不造,欢迎友友们指教,多谢!! Tomcat与http有协议

    2024年02月11日
    浏览(27)
  • 【JavaEE】_HTTP请求首行

    目录 1. URL 2. 方法 2.1 GET方法 2.2 POST方法 2.3 GET与POST的区别 2.4 低频使用方法 在mysql JDBC中已经提到过URL的相关概念: 如需查看有关JDBC更多内容,原文链接如下: 【MySQL】_JDBC编程-CSDN博客 URL用于描述某个资源在网络上的所属位置,数据库也是一种资源故而在JDBC中使用URL描述

    2024年02月19日
    浏览(28)
  • [JAVAee]HTTP协议

    目录 应用层协议HTTP HTTP的工作过程 HTTP协议格式 HTTP请求 URL HTTP常用方法 Header报头 Host Content-Length Content-Type User-Agent Referer Cookie Body HTTP响应 状态码 ​编辑FORM构建HTTP请求 GET请求 POST请求 ajax构造HTTP请求 GET请求 HTTP (全称为 \\\"超文本传输协议\\\") 是一种应用非常广泛的 应用层协议

    2024年02月12日
    浏览(30)
  • 【JavaEE】HTTP协议

    HTTP (全称为超文本传输协议) 是一种应用非常广泛的 应用层协议! 我们平时打开一个网站, 就是通过 HTTP 协议来传输数据的. 当我们在浏览器中输入一个 搜狗搜索的 “网址” (URL) 时, 浏览器就给搜狗的服务器发送了一个 HTTP 请求, 搜狗的服务器返回了一个 HTTP 响应. 这个响应结

    2024年02月08日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包