[JAVAee]HTTP协议

这篇具有很好参考价值的文章主要介绍了[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 (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议.

应用层协议HTTP

像TCP协议,是传输层中的协议.负责的只是将数据进行传输,就像快递员一样的作用.

而HTTP应用层的协议,是在接收到的数据进行处理或表明其使用的方式,相当于一种"在加工".

HTTP的工作过程

当我们输入一个网址,在同时浏览器就会对相应要访问的服务器发送一个HTTP请求.

在服务器接收到这个HTTP请求,经过一定的处理后,再返回一个HTTP响应.

当我们使用抓包软件,观察打开CSDN首页:

[JAVAee]HTTP协议,http,网络协议,网络

可以看到,当打开一个网页时.涉及到的不止一次HTTP的请求与响应.

HTTP协议格式

可以通过抓包的方式来查看HTTP协议中的格式.

  1. HTTP请求首行内容:方法 + URL(网址) + 版本号.
  2. HTTP响应首行内容:版本号 + 状态码 + 状态码解释
  3. 接下来的内容就属于Header部分:请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束.
  4. Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有
    一个Content-Length属性来标识Body的长度.

来分别查看访问CSDN的抓包结果

HTTP请求:

(中间红色的是Header部分)

[JAVAee]HTTP协议,http,网络协议,网络

 HTTP响应:

[JAVAee]HTTP协议,http,网络协议,网络

在请求部分中Body的内容不太显著.在响应就可以明显的看到存放的是访问的网页相应的前端内容.

HTTP请求

URL

URL就是我们俗称的"网址"

URL-uniform resource locator-统一资源定位器.

一个URL包含的信息指出了一个文件在网络上的位置,以及其使用的方式.

URL = 包括协议+域名或ip+端口号+路径+查询参数+锚点,其中一些内容是可以被省略的.

  • 协议:像是http,https(加密后的http)
  • 域名/IP:要访问的服务器地址
  • 端口号:对应服务器的端口号
  • 路径:网络服务器上的资源路径
  • 查询参数(query string):访问一个网页,其实就像是在访问一个文件.此文件可以没有什么交互.也可以是一个程序,在我们提交了一定的参数后,返回一定的结果.返回的结果就是一个文件(页面).参数中就存放着我们给服务器的参数,本质上是键值对[用&分割键值对,=分割键与值]

[JAVAee]HTTP协议,http,网络协议,网络

  • 锚点:像是一个书签,在一些有目录的查询页面可以看到,帮助定位到网页的某一个位置中

HTTP常用方法

  • GET:获取资源(一般客户端用来向服务器获取资源)
  • POST:传输实体(一般服务器用来向客户端发送资源)
  • PUT:传输文件
  • HEAD:返回报头(header)
  • DELETE:删除文件

关于GET与POST方法.其实他们的本质是相同的.只是在使用的习惯和场景上的用法不同.PUT与这两个方法也是类似的.

GET不一定只用来在请求上获取资源,也可以发送资源.POST相应的也可以发送资源.

Header报头

报头中为键值对格式:key:value,一个键值对占一行空间

Host

表明服务器主机的地址与端口

例如:Host: www.csdn.net(此处的地址是域名的形式哈,解析一下就可以得到相应的IP了)

Content-Length

表示body中的长度.在GET方法中一般没有body,自然就看不到此键值对啦.

Content-Type

有了此格式,接收HTTP的浏览器或者服务器才能正确的解析出body中的内容

较重要的是:

  • application/x-www-form-urlencoded : 表示提交的数据为form格式,并对其进行urlencoded编码与序列化
  • multipart/form-data: 表示提交的数据为form格式
  • application/json: 表示提交的数据为json格式

urlencoded编码是将一些符号进行重新编码成另一种形式,序列化就是为了节省资源将其的换行与空格都去除了. 

form格式,形如:

name=zhangsan&id=123456

json格式,形如(冒号分割键与值,逗号分割键值对):

{

        键(规定为Sting类型) : 值(变量)

        "name" : zhangsan,

        "id" : 123456

}

User-Agent

表明浏览器或当前操作系统的属性

为了给不同操作系统或浏览器传输正确版本的资源.

像一些老版本的,例如XP系统就会打不开一些网站.或者一个网页能被XP与win10打开,说明其可能相应的配备了两套资源来适应两个操作系统.

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203

描述了操作系统为win10,64位

浏览器版本是Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203

Referer

表明当前网页的来源的地址.

即用百度点击CSDN的网页.Referer显示的就是百度的地址

如果在地址栏输入URL来访问或者在收藏夹进行打开,是没有Referer的噢

像这里的用处,就可以让投广告的广告主查看哪一个网页访问此广告的浏览量最多啦.

Cookie

Cookie是在访问某些页面时,留存在本机中的文件.

此文件记录了关于用户的相关信息,或是身份标识.方便服务器高效的对用户的偏好行为作出反应.

类似于"个性化推荐".

每一个域名下都可以有一个Cookie,其之间是不会产生冲突的.

Cookie还具有实效性,有一些是临时的,还有一些是可以长期存在的.跟服务器的相应设置相关.

其可以是网页自行写入的,也可以的服务器使用SetCookie方法进行写入.

Body

关于HTTP的请求,在用户对服务器进行上传一些数据时会使用到POST方法.可以看到其body(正文).

像是上传头像,body中存储的就是一定格式的图片信息.

HTTP响应

状态码

FORM构建HTTP请求

FORM的参数

  • action:请求的URL
  • method:使用的方法(form只支持get方法或post方法)

INPUT的参数

type:输入框的类型

name:构造http请求时的URL上query string键值对中的key

vaule:输入框中要显示的文本

GET请求

<body>
    <form action="https://www.baidu.com/" method="get">
        <input type="text" name="name">
        <input type="submit" value="点击提交">
        <!-- <button type="submit">提交</button> -->
    </form>
</body>

[JAVAee]HTTP协议,http,网络协议,网络

提交后的结果:

可以看到input中提交的值,与input的name组成了URL中的query string

[JAVAee]HTTP协议,http,网络协议,网络

POST请求

跟get相同,只要把方法改成post就可以了

<body>
    <form action="https://www.baidu.com/" method="post">
        <input type="text" name="name">
        <input type="submit" value="点击提交">
        <!-- <button type="submit">提交</button> -->
    </form>
</body>

结果:

在post方法中,数据从URL中的query sting移动到了body内容中

[JAVAee]HTTP协议,http,网络协议,网络

ajax构造HTTP请求

Asynchronous Javascript And XML-异步的Javascript与XML

相比于form,功能更强大.能够使用除了get与post的其他方法.

ajax发送的http请求中的header与body可以灵活的进行设置

特点是:异步请求,局部刷新.

此处异步的意思是:可以不等待服务器的响应就继续往下执行

GET请求

虽然js原生库中含有ajax

但着还是引入了一个jquery库里面有ajax使用更方便一定

<body>
    <script src = "http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>
    <script>
        $.ajax({
            type: 'get',
            url : 'https://www.baidu.com/index.htm?name=wow',
            success: function(data){//回调函数,异步的体现.在服务器响应后再调用此函数
                console.log("OK")
            }
        });
        console.log("wow");//请求完后即刻执行ajax后面的程序,不用等待响应
    </script>
</body>

post也是差不多的,就不多展开了.

以上就是关于HTTP的一些简要说明.文章来源地址https://www.toymoban.com/news/detail-658036.html

到了这里,关于[JAVAee]HTTP协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • JavaEE-HTTP协议(一)

    计算机网络,核心概念,网络协议 网络协议种类非常多,其中一些耳熟能详的,IP,TCP,UDP…其中还有一个应用非常广泛的协议,HTTP HTTP 处于 TCP/IP五层协议栈的应用层~ HTTP在传输层是基于TCP的~( 不够严谨,HTTP/1 HTTP/2 是基于TCP,最新版本HTTP/3是基于UDP的,但是当下互联网绝大部

    2023年04月09日
    浏览(29)
  • HTTP协议(JavaEE初阶系列15)

    目录 前言: 1.HTTP协议 1.1HTTP协议是什么 1.2HTTP协议的报文格式 1.2.1抓包工具的使用 1.2.2HTTP请求 1.2.3HTTP响应 2.HTTP请求 2.1首行的组成 2.2.1URL的组成 2.2认识“方法”(method) 2.2.1GET方法 2.2.2POST方法 2.2.3GET和POST请求的区别 2.3认识请求“报头”(header) 2.4认识请求正文(body) 3

    2024年02月11日
    浏览(31)
  • 【JavaEE】网络原理-HTTP

    HTTP是一种 基于传输层TCP并位于应用层的超文本协议 目前主要使用HTTP1.1和HTTP2.0 2.1 使用Fiddler抓包进行分析 关于Fiddler: 是一个代理工具,就像高速路上的收费站,不管什么车,只要它从高速路上经过,那么就需要经过收费站 对应到网站上,就是不管什么网站,只要有数据的

    2024年03月21日
    浏览(50)
  • 网络协议HTTP/1、HTTP/2 及 HTTP/3详解

    目录 概述  一、发展史 HTTP/1.1  Keep-alive  动静分离  HTTP/2 二进制传输   多路复用 Header 压缩 服务端 Push  HTTP/3 QUIC  多路复用 0-RTT 纠错机制 三、小结 HTTP(Hyper Text Transformer Protocol,超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到

    2024年02月02日
    浏览(43)
  • 【网络协议】聊聊http协议

    当我们输入www.baidu.com的时候,其实是先将baidu.com的域名进行DNS解析,转换成对应的ip地址,然后开始进行基于TCP构建三次握手的连接,目前使用的是1.1 默认是开启了keep-Alive。可以在多次请求中进行连接复用。 连接建立之后,就要发送HTTP的请求了, 整体其实就是三部分,请

    2024年02月06日
    浏览(47)
  • 网络协议 - HTTP 协议详解

    HTTP 协议详解,web开发必备。 URI 包含 URL 和 URN,目前 WEB 只有 URL 比较流行,所以见到的基本都是 URL。 URI(Uniform Resource Identifier,统一资源标识符) URL(Uniform Resource Locator,统一资源定位符) URN(Uniform Resource Name,统一资源名称) 1. 请求报文 2. 响应报文 客户端发送的 请求报文 第

    2024年02月04日
    浏览(41)
  • 网络协议与攻击模拟-21-HTTP协议

    1、 HTTP 协议结构 2、在 Windows server 去搭建 web 服务器 3、分析 HTTP 协议流量 1、概念 HTTP (超文本传输协议)是用于在万维网服务器上传输超文本( HTML )到本地浏览器的传输协议 属于 TCP / IP 协议簇的一员( HTML 文件、图片、查询结构等) 基于传输层 TCP 的80端口 2、万维网服

    2024年02月16日
    浏览(28)
  • 网络通信:http协议

    虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议) 就是其中之一. 统一资源定位符(Uniform Resource Locator,缩写:URL),是对资源的引用和访问该资源的方法。俗称网址

    2024年02月07日
    浏览(49)
  • 【网络】HTTP协议详解

    😀大家好,我是 白晨 ,一个不是很能熬夜😫,但是也想日更的人✈。 如果喜欢这篇文章, 点个赞 👍, 关注一下 👀白晨吧!你的支持就是我最大的动力!💪💪💪 哟,大家好,我是白晨。距离上一次更新已经过了一段时间了,属实是当鸽子当惯了🤣。 上一篇文章我们

    2024年02月02日
    浏览(35)
  • [网络原理] HTTP协议

    要珍惜时间呀 HTTP协议是应用层协议,TCP/IP协议为传输层协议,负责传输数据.而HTTP协议相当于对传输的数据据怎样处理和使用进行说明. 每次,我们访问网站的时候,都会给网站的服务器发送一个HTTP请求,服务器收到请求后,会返回一个HTTP响应.如下图所示. 下图,为一个HTTP请求的格式

    2024年02月03日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包