第一章 JavaWEB专题之Http基础协议&解析

1、CS架构&BS架构区别

(1)CS架构

  • 客户机-服务器,即Client-Server(C/S)结构

在这里插入图片描述

  • 范例:LOL下载,王者荣耀下载

在这里插入图片描述

(2)BS架构

  • 浏览器-服务器,即Browser-Server(B/S)结构

在这里插入图片描述

  • 范例:PC端网页浏览,云生态,例如4399小游戏

在这里插入图片描述

(3)BS & CS区别

在这里插入图片描述

(4)URL

  • 含义:统一资源定位符,获取服务器的一种;

  • 标准格式:协议://服务器IP:端口/路径N ? key1=value1 & key2=value2

    • 协议:比如http、https,不同协议有不同的解析方式
    • 服务器IP:公网IP访问服务器
    • 端口:一个端口一个进程,http默认端口是80
    • 路径:资源所在路径(后端接口,一般称之为“接口路径”
  • 示例如下

#访问HDFS的WEB端
http://192.168.6.102:9870/logs

①协议:    http
②服务器ip:192.168.6.102
③路径:    logs
2、超文本传输协议Http
  • 协议:一种发送/接收消息约定方式,如果发送方按照这种请求格式发送,接收方按照这样的格式解析

(1)JSON协议

{
    name:zhangsan
    age:120
}

(2)XML协议

<user>
	<name>zhangsan</name>
    <age>120</age>
</user>    

(3)Http协议

  • 超文本传送协议:建立在TCP协议之上的一种应用。

Ⅰ、Http连接

  • 含义:客户端每次发送的请求都需要服务器回送相应,从建立连接到关闭连接的过程称之为“一次连接”

  • 范例:以百度搜索王者荣耀为例

  • 请求 - requesturl

在这里插入图片描述

  • 响应 - Preview

在这里插入图片描述

Ⅱ、响应码

  • 含义:反映了web服务器处理HTTP请求状态,每一个响应码都代表了一种服务端反馈的响应状态,标识了本次请求是否成功
响应码含义备注
1xx信息比较少用
2xx请求成功200 ok代表请求正常
3xx重定向,自动跳转到新URL域名迁移时使用
4xx客户端错误主要是语法错误 & 无法完成请求
5xx服务器错误服务器在请求过程中发生错误
  • 范例:以百度搜索王者荣耀为例

在这里插入图片描述

Ⅲ、https

  • 组成:HTTP+SSL/TLS
  • 优点:防止在传输过程中不被窃取、改变,保证数据完整性。
3、Http协议消息拆分详述
  • 范例:以王者荣耀官网为例
3.1、http请求消息结构

在这里插入图片描述

(1)请求行

  • 请求方法
:method:GET

在这里插入图片描述

  • URL地址
:path: /speed/performance?dnsLookup=0&tcp=37&ssl=23&ttfb=17&contentDownload=1&domParse=539&resourceDownload=769&firstScreenTiming=0&id=3846&uin=&version=1.35.20&aid=92398881-f9a3-4c99-8871-0be5c5a9ad7c&env=production&platform=3&netType=4&vp=1920%20*%20881&sr=1920%20*%201080&sessionId=session-1642643989877&from=https%3A%2F%2Fpvp.qq.com%2F&referer=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DInZhKFOtmeSvUSkNXDVdSPoNh0DMOSrw8cSLSqk1odG%26wd%3D%26eqid%3Db3b8c60f0004a1b90000000361e8bcff

在这里插入图片描述

  • 协议名
:scheme: https

在这里插入图片描述

(2)请求头

  • 报头文:包含若干属性值(属性名:属性值),服务端据此获取客户端的基本信息。

在这里插入图片描述

(3)请求体

  • 请求体:即请求参数

在这里插入图片描述

3.2、http响应消息结构

在这里插入图片描述

(1)响应行

  • 含义:报文协议、版本、状态码
HTTP/1.1 200 OK

在这里插入图片描述

(2)响应头

  • 含义:即报文头,包含若干个属性,格式为“属性名:属性值”

在这里插入图片描述

(3)响应正文

  • 含义:响应报文体,即我们需要的内容,有多种形式比如html、json、图片、视频文件。

在这里插入图片描述

3.3、http请求方法
  • 请求方法:客户端通过HTTP的方法告诉服务器要执行什么动作
请求方式概述
GET用来查询数据,不对服务器的数据进行任何的修改、添加、删除等操作
POST对服务器的数据的操作,侧重于数据新增操作
PUT向服务端发送数据、改变信息的操作,侧重于数据修改操作
DELETE删除资源,一般用于数据库数据的删除操作
HEAD只是请求页面的头信息,用来获取报头信息返回的响应中没有内容,GET请求的返回中有实体信息。
3.4、http响应状态码
  • 响应状态码:服务器通过状态码来告诉客户端动作是否执行成功
状态码概述
200请求成功,已经正常处理完毕
301请求永久重定向,转移到其它URL
302请求临时重定向
304请求被重定向到客户端本地缓存
400客户端请求存在语法错误
401客户端请求没有经过授权
403客户端的请求被服务器拒绝,一般为客户端没有访问权限
404客户端请求的URL在服务端不存在,一般是找不到路径对应的接口或文件
500服务端内部报错,完成不了这次请求
503服务器宕机
1.3.5、常见请求头概述
  • GET(请求的方式) /newcoder/hello.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号)

在这里插入图片描述

keyvalue
Accept客户端能接收的资源类型
Accept-Language客户端接收的语言类型
Connection维护客户端和服务端的连接关系
Host连接的目标主机和端口号
User-Agent客户端版本号的名字
Accept-Encoding客户端能接收压缩数据的类型
If-Modified-Since缓存时间
Cookie客户端暂存服务端的信息
Date客户端请求服务端的时间
3.6、常见响应头概述
  • HTTP/1.1(响应采用的协议和版本号) 200(状态码) OK(描述信息)

在这里插入图片描述

keyvalue
Location服务端需要客户端访问的页面路径
Server服务端的Web服务端名
Content-Encoding服务端能够发送压缩编码类型
Content-Length服务端发送的压缩数据的长度
Content-Language服务端发送的语言类型
Content-Type服务端发送的类型及采用的编码方式
Last-Modified服务端对该资源最后修改的时间
Date服务端响应客户端的时间
Expires服务端是否禁止客户端缓存页面数据
Connection维护客户端和服务端的连接关系
3.7、context-type内容类型概述
  • Context-type:用来指定不同格式的请求响应信息,俗称MIME类型。
    • HTML文档标记:text/html
    • 普通ASCII文档标记:text/html
    • JPEG图片标记:image/jpeg
    • GIF图片标记:image/gif
    • js文档标记:application/javascript
    • xml文件标记:application/xml
    • pdf格式:application/pdf
    • 二进制流数据:application/octet-stream
    • 表单数据:multipart/from-data
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随缘清风殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值