山东大学项目实训七——HTTP协议请求头和响应头

实现一个可以支持静态资源访问的HTTP服务器。
基础编程语言: java语言。
核心技术: HTTP请求,网络编程,多线程等。

为何我们能访问网络上的网页在这里插入图片描述

HTTP协议的格式和内容

在这里插入图片描述
HTTP 请求报文由3部分组成(请求行+请求头+请求体)

image.png

HTTP请求报文
1是请求方法,GET和POST是最常见的HTTP方法,初次以外还包括 DELETE、HEAD、OPTIONS、PUT、TRACE,不过现在大部分的浏览器只支持GET和POST

2是请求对应的URL地址,他和报文头的Host属性,组合起来是一个完整的请求URL

3是协议民称和版本号

4是报文头,有若干个属性,形式为key:val,服务端据此获取客户端信息

5是报文体,它将一个页面表单中的组件值通过param1=val1&parma=2的键值对形式编码成一个格式化串,它承载多个请求参数的数据,不但报文头可以传递请求参数,URL也可以通过/chapter15/user.html? param1=value1&param2=value2”的方式传递数值

HTTP请求报文头属性

什么是报文头属性呢,报文头属性有什么用呢?

比如说吧,当你在公司cv代码的时候,突然之间饿意来袭,你就打电话,让楼下的餐馆送个外卖,你给老板说:老板,给我来个最便宜的盖饭,送到xxx,我叫FF

这里你要的盖饭相当于报文体,而我叫FF这种信息就相当于报文体,他是一些附属属性,为的是让你们的交易更加顺利.

所以HTTP的报文头的属性,就是为啦让客户端和浏览器端更加便捷、顺利

常见的HTTP报文头属性

Accpet
告诉服务端,客户端接收什么类型的响应

Referer
表示这是请求是从哪个URL进来的,比如想在网上购物,但是不知道选择哪家电商平台,你就去问度娘,说哪家电商的东西便宜啊,然后一堆东西弹出在你面前,第一给就是某宝,当你从这里进入某宝的时候,这个请求报文的Referer就是www.baidu.com

Cache-Control
对缓存进行控制,如一个请求希望响应的内容在客户端缓存一年,或不被缓可以通过这个报文头设置

Accept-Encoding
这个属性是用来告诉服务器能接受什么编码格式,包括字符编码,压缩形式(一般都是压缩形式)
例如:Accept-Encoding:gzip, deflate(这两种都是压缩格式)

Host
指定要请求的资源所在的主机和端口

User-Agent 作用:告诉服务器,客户端使用的操作系统、浏览器版本和名称

HTTP响应报文

响应报文与请求报文一样,由三个部分组成(响应行,响应头,响应体)

image.png

1 报文协议及版本;

2状态码及状态描述;

3响应报文头,也是由多个属性组成;

4响应报文体,即我们要的数据。

HTTP状态码

image.png

简单说下常见的几个状态码

200 OK 表示成功

303 重定向,把你重定向到其他页面

304 资源并未修改,可以直接使用本地的缓存

404 找不到页面(页面被删除或其他)

500 服务端错误
在这里插入图片描述

HTTP响应报文属性

Cache-Control
响应输出到客户端后,服务端通过该属性告诉客户端该怎么控制响应内容的缓存

ETag
表示你请求资源的版本,如果该资源发生啦变化,那么这个属性也会跟着变

Location
在重定向中或者创建新资源时使用

Set-Cookie
服务端可以设置客户端的cookie

更多常用请求头和响应头属性

https://www.cnblogs.com/widget90/p/7650890.html

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值