转自:https://blog.csdn.net/u013372487/article/details/46991623

http协议

1. http协议是建立在  tcp/ip协议基础上.

2. 我们的web开发数据的传输都是依赖于http协议.

3. http协议全称是 超文本传输协议

http协议的-http请求(request)

基本结构

请求行

消息头

<----空行

消息体(实体内容)

举例:

GET/test/hello.html HTTP/1.1

【表示发送的get请求, 请求资源是/test/hello.html 】

Accept: */* 【表示客户端可以接受任何数据】

Referer: http://localhost:80/test/abc.html 【1.表示我是从哪里来】

Accept-Language:zh-cn 【页面语言】

User-Agent:Mozilla/4.0  【告诉服务我的浏览器的内核,操作系统】

Accept-Encoding:gzip, deflate 【表示接受什么样的数据压缩格式.】

Host:localhost:80 【主机:80】

Connection:Keep-Alive     【表示不要立即断掉我们的请求.】

现在我们想知道,客户端究竟给服务器发送的内容

如果我这个http1.php. 不希望 192.168.1.33 这个用户访问.

在服务器端,我们可以通过$_SERVER来获取我们需要的信息

重要的有:

HTTP_HOST

REMOTE_ADDR 访问该页面的ip

DOCUMENT_ROOT  可以获取 apche的主目录

REQUEST_URI 可以获取 请求的资源名

http请求有两种主要的方式

get / post

get 和post的区别有哪些

1.安全性 get 请求的数据会显示在 地址栏(URL路径中)上, post请求的数据,放在http协议的消息体

2.从可以提交数据的大小看.

2.1  http协议本身并没有限制数据大小.

2.2  浏览器在对get 和post请求做限制, get 请求数据 2k+35  ,post没有限制.

3. get请求可以更好的添加到收藏夹.

现在我们实际使用一些http请求,完成一个防盗链的练习.

☞ http请求不是固定,是根据实际情况的,比如REFEER.

Http响应(response)

简单定义: 一个Http响应代表服务器给浏览器回送的数据,同时告诉浏览器应当怎样处理数据.

1.基本结构

状态行

消息头信息

<--空行

实体信息

快速入门

HTTP/1.1 200 OK           【200 ok 表示客户端请求成功】

Server: Microsoft-IIS/5.0           【表示告诉浏览器 服务器的情况 】

Date: Thu, 13 Jul 2000 05:46:53 GMT 【告诉浏览器 请求的页面 的时间 】

Content-Length: 2291                   【表示回送的数据有 2291个字节】

Content-Type: text/html        【文档类型】

Cache-control: private          【缓存】

hello

对状态码的说明

举例说明Http响应的实际应用

302状态码的使用

比如我们现在希望访问a.php 页面,让其自动重定向到b.php

基本用法使用

<?php

//header(“Location: 新的页面”);

header(“Location: http://www.sohu.com”);

exit();

?>

细节: 302 状态码也可以让其跳转到外网去

404 码

404 最常见的状态码

404一般说就是该页面不存在

304码使用

304 码主要是告诉浏览器,请求的资源不需要更新

<?php

echo “hello”;

echo “<imgsrc=”Sunset.jpg”  width=”100px”>“

?>

上面说明了 304的具体用法

HTTP/1.1 304 Not Modified

Date: Tue, 13 Sep 2011 02:10:38 GMT

Server: Apache/2.2.17 (Win32) PHP/5.3.5

Connection: Keep-Alive

Keep-Alive: timeout=5, max=99

ETag:"12d00000000572c-6f69-3e1d849f35000"

下面是比较详细的一个Http响应

Location: http://www.baidu.org/index.php

Server:apache

Content-Encoding: gzip   【内容编码支持gzip压缩算法】

Content-Length: 80      【返回数据大小】

Content-Language: zh-cn

Content-Type: text/html; charset=GB2312

Last-Modified: Tue, 11 Jul 2000 18:23:51GMT 【表示浏览器请求资源,最新更新时间】

Refresh:1;url=http://www.baidu.com  【告诉浏览器,间隔1秒,重定向到 baidu】

Content-Disposition: attachment;filename=aaa.zip

Transfer-Encoding: chunked

Set-Cookie:SS=Q0=5Lb_nQ; path=/search  【讲Cookie】

Expires: -1

Cache-Control:no-cache

Pragma: no-cache

Connection: close/Keep-Alive

Date: Tue, 11 Jul 2000 18:23:51 GMT

演示如何通过Http响应,控制浏览器间隔一定时间去跳转.

<?php

//header(“Refresh: 3 ; url=http://www.sohu.com”);

header(“Refresh: 3 ;url=http://localhost/http/d.php”);

?>

演示如何通过Http响应控制页面缓存,在默认情况下,浏览器会缓存页面.

<?php

//通过以下三个header语句来禁用缓存(ajax ),用三句是为了匹配不同的浏览器

header("Expires: -1");

header("Cache-Control: no_cache");

header("Pragma: no-cache");

echo"hello!cache";

?>

---------------------
作者:偶-木
来源:CSDN
原文:https://blog.csdn.net/u013372487/article/details/46991623
版权声明:本文为博主原创文章,转载请附上博文链接!

http协议:http请求、http响应、间隔时间跳转页面、禁用浏览器缓存的更多相关文章

  1. 老李分享:HTTP协议之请求和响应

    老李分享:HTTP协议之请求和响应   HTTP请求头详解: GET http://www.foo.com/ HTTP/1.1 GET是请求方式,请求方式有GET/POST http://www.fo ...

  2. 【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析

    [渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP ...

  3. 02_Django-路由配置-HTTP协议的请求和响应

    02_Django-路由配置-HTTP协议的请求和响应 视频:https://www.bilibili.com/video/BV1vK4y1o7jH 博客:https://blog.csdn.net/ ...

  4. JS请求服务器,并返回信息,请求过程中不需要跳转页面

    js请求服务器,并返回信息,请求过程中不需要跳转页面 这个可以通过jQuery框架轻松实现,jQuery中包含多种ajax的请求方式,详细可以参考下对应 的API. 你上面定义的按钮类型是submit ...

  5. HTTP协议的请求和响应学习

    本篇作为学习servlet的前提,http协议是学习JavaWeb开发的基石,不深入了解http协议,就不能说掌握了JavaWeb开发. HTTP协议有两个版本:HTTP1.0和HTTP1.1,那么有 ...

  6. 【HTTP】HTTP协议的请求与响应

    创建时间:6.14 http协议 的位置 1.HTTP是什么 超文本传输协议(HyperText Transfer Protocol) 2.Http协议的组成 Http协议由Http请求和Http响应 ...

  7. #WEB安全基础 : HTTP协议 | 0x10 请求和响应报文重点结构及常见头部

    你需要认识一些常见的头部以及了解报文的详细结构 请求报文的请求行 GET/HTTP/1.1 响应报文的响应行 HTTP/1.1 200 OK 想必这些大家都知道了 请求 我访问一个页面 Host // ...

  8. JavaWeb_Day10_学习笔记1_response(3、4、5、6、7、8、9)发送状态码、响应、重定向、定时刷新、禁用浏览器缓存、响应字节数据、快捷重定向方法、完成防盗链

    今天学习重点: 1.response和request响应和应答分别学习: 请求响应流程图 response 1        response概述 response是Servlet.service方法 ...

  9. 禁用浏览器缓存Ajax请求

    $.ajax({ url: 'url.php', cache: false, success: function(data){ //..... } }); 仅Get有缓存, Post不会缓存

随机推荐

  1. springmvc快速入门(XML版本)

    1)springmvc快速入门(传统版) 步一:创建springmvc-day01这么一个web应用 步二:导入springioc,springweb , springmvc相关的jar包 步三:在/ ...

  2. 使用Pull解析器生成XML文件

    有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...

  3. WPF 绑定集合 根据集合个数改变样式 INotifyCollectionChanged

    问题:当前ListBox Items 绑定 集合数据源ListA时候:ListA集合数据源中存在另外一个集合ListB,当更改或往ListB集合中添加数据的时候,通知改变? 实体类继承 INotify ...

  4. delphi stringgrid导出为excel

    procedure TLiYQBYJL.btnBYJLTJDCClick(Sender: TObject); var ExcelApp, workbook, sheet: Variant; col, ...

  5. Linux命令集锦:chmod命令

    chmod命令是用来变更文件或目录的权限. 权限范围的表示法如下: u:User,即文件或目录的拥有者: g:Group,即文件或目录的所属群组: o:Other,除了文件或目录拥有者或所属群组之外, ...

  6. centos7.5 解决缺少libstdc++.so.6库的原因及解决办法

    centos7. 解决缺少libstdc++.so.6库的原因及解决办法 执行node -v报错如下: [root@bogon ~]# node -v node: error : cannot ope ...

  7. VMware Workstation 12许可证

    VMware 12专业版永久许可证密钥: 5A02H-AU243-TZJ49-GTC7K-3C61N VF5XA-FNDDJ-085GZ-4NXZ9-N20E6 UC5MR-8NE16-H81WY-R ...

  8. sops的配置过程

    0.demo关键 1.关键信息,不能用5.1.6版本的,还有很多坑 蓝鲸版本: 标准运维:bk_sops_V3.1.39.tar 2.简单理解: 标准运维实际上调用作业平台job的API去执行 要跑通 ...

  9. JS触发事件集锦

    事件句柄 HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript.下面是一个属性列表,这些属性可 ...

  10. [转帖]Breeze部署kubernetes1.13.2高可用集群

    Breeze部署kubernetes1.13.2高可用集群 2019年07月23日 10:51:41 willblog 阅读数 673 标签: kubernetes 更多 个人分类: kubernet ...