HTTP/1.1协议初识

http协议
* 即超文本传输协议。它规定了浏览器与服务器之间的通讯规则。
* http是基于请求/响应模式的,所以分为请求协议和响应协议

===================================

请求

  请求内容就是客户端发送给服务器的数据!

1. 请求格式:
* 请求首行
* 请求头
* 空行
* 请求体(或称之为请求正文)

2. 请求方法
* 常见请求方法有GET和POST
* 在浏览器地址栏中发送请求,以及点击超链接都是GET请求
* 提交表单可以发送GET请求,以及POST请求
* GET请求没有请求体,但空行是存在的
* POST请求是存在请求体的

3. 使用HttpWatch获取请求信息
* 请求行:请求方法 请求路径 请求协议及版本,例如:GET /hello/index.jsp HTTP/1.1  :GET请求,请求服务器路径为/hello/index.jsp,协议为1.1
* 请求头:请求头就是一些键值,格式为:头:值,例如:Host:localhost 请求的主机名为localhost

* 空行:就是一个空行,用来与请求体分隔

* 请求体:GET方法没有请求体,POST才有请求体,请求体内容为:参数名=参数值&参数名=参数值,其中参数值为中文,会使用URL编码。

4. 常见请求头
* Host:请求的服务器主机名
* User-Agent:客户端浏览器与操作系统相关信息
* Accept-Encoding:客户端支持的数据压缩格式
* Connection:客户端支持的连接方式
* Cookie:客户端发送给服务器的“小甜点”,它服务器寄存在客户端的。如果当前访问的服务器没有在客户端寄存东西,那么就不会存在它!
* Content-Length:请求体的长度
* Referer:当前发出请求的地址,例如在浏览器地址栏直接访问服务器,那么没有这个请求头。如果是在www.baidu.com页面上点击链接访问的服务器,那么这个头的值就是www.baidu.com
> 作用1:统计来源
> 作用2:防盗链
* Content-Type:如果是POST请求,会有这个头,默认值为application/x-www-form-urlencoded,表示请求体内容使用url编码。

===================================

响应

  响应就是服务器发送给客户端的数据!

1. 响应格式:
* 响应首行
* 响应头
* 空行
* 响应体(或称之为响应正文)

2. 状态码
  响应首行的结构:协议及版本 状态码 状态码说明,例如:HTTP/1.1 200 OK

* 200:请求成功
* 302:请求重定向
* 304:请求资源没有改变
* 404:请求资源不存在,属性客户端错误
* 500:服务器内部错误

3. 响应头
* Content-Type:响应正文的MIME类型,例如image/jpeg表示响应正文为jpg图片,例如text/html;charset=utf-8表示响应正文为html,并且编码为utf-8编码。浏览器会通过这一信息来显示响应数据
* Content-Length:响应正文的长度
* Set-Cookie:服务器寄存在客户端的“小甜点”,当客户端再次访问服务器时会把这个“小甜点”还给服务器
* Date:响应时间,可能会有8小时的误差,因为中国的时区问题

  通知客户端浏览器不要缓存页面的响应头:
* Expires:-1
* Cache-Control: no-cache
* Pragma: no-cache

  自动刷新响应头,浏览器会在3秒钟后自动重定向到传智主页
* Refresh: 3;url=http://www.itcast.cn

4. 状态码304
 相关头信息
* Last-Modified:响应头,表示当前资源的最后修改时间;
* If-Modified-Since:请求头,表示缓存的资源最后修改时间;

 状态码304:表示访问的资源没有改变

1. 客户端首次访问服务器的静态资源index.html,服务器会把index.html响应给客户端,而且还会添加一个名为Last-Modified的响应头,它说明了当前index.html的最后修改时间
2. 客户端收到响应后,会把index.html缓存在客户端上,而且还会把Last-Modified缓存起来。
3. 客户端第二次请求index.html时,会添加名为If-Modified-Since的请求头,它的值是上次服务器响应头Last-Modified,服务器获取到客户端保存的最后修改时间,以及当前资源的最后修改时间进行比较,如果相同,说明index.html没有改动过,那么服务器不会发送index.html,而是响应状态码304,即通知客户端资源没有改变,你可以使用自己的缓存。

 

username=%E5%BC%A0%E4%B8%89&password=123

-128~127、-128~127、-128~127、-128~127、-128~127、-128~127

字节+128 --> 转换成16进制 --> 添加%这个前缀
36 --> %A4

转载于:https://www.cnblogs.com/learn-zy/p/10365855.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTP状态码及其含义 下表显示了常见的HTTP 1.1状态代码以及它们对应的状态信息和含义。 应当谨慎地使用那些只有HTTP 1.1支持的状态代码,因为许多浏览器还只能够支持HTTP 1.0。如果你使用了HTTP 1.1特有的状态代码,最好能够检查一下请求的HTTP版本号。 状态代码 状态信息 含义 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新) 101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议HTTP 1.1新) 200 OK 一切正常,对GET和POST请求的应答文档跟在后面。 201 Created 服务器已经创建了文档,Location头给出了它的URL。 202 Accepted 已经接受请求,但处理尚未完成。 203 Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。 204 No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。 205 Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。 206 Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。 300 Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。 301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值