https协议

HTTP协议

  1. 什么是http协议?

协议:协议是一种双方约定好的规范,双方在做某一件事情的时候,必须按照事先定义好的规范去实现和操作。

HTTP:超文本传输协议,HyperText Transport Protocol,超文本在服务器与浏览器之间传输的时候必须遵循的协议。

 

可以在课堂做游戏。通过游戏来给学生说明http协议是怎么来工作的.

Zai举一个比较好玩的例子说明明白http协议的重要性

在说一个好玩的例子就是刷票

 

  1. 什么是html?

超文本标记语言:HyperText Markup Language

html的作用:保证同一数据在不同的电脑(用户),看到的效果一样。

举例子说如果传输内容太多怎么办。是不是需要一个密码本。保证翻译的准确性参考htnl各种标签

思考:一个问题比如我要传输的东西特别多怎么办.是不是规则很重要啊

 

HTTP协议工作原理

HTTP协议特点

1、支持客户/服务器模式:HTTP协议是为b/s而生,是基于web产生,http协议不仅限于b/s,凡是能够发出http请求的东西,都可以使用http协议访问服务器。

2、简单快速[只需请求方法和路径]:用户通过浏览器发起请求的时候:输入url即可

3、灵活[任意数据]:可以传输任意数据类型,不管是字符流还是二进制流

4、无连接[每次连接只处理一个请求]:当浏览器发起一次请求之后,服务器只能对当前请求产生一次响应,响应完就会关闭连接。

5、无状态[事务处理没有记忆能力]:同一个浏览器连续多次向服务器发起请求,服务器都不认识(可以使用从cookie解决无状态问题)

 

HTTP协议内容

HTTP协议根据参与者的参与方式分为两种:HTTP请求(Request)和HTTP响应(Response)

 

HTTP请求

HTTP请求分为4个部分:请求行,请求头,空行,请求数据,四个部分都是独立占行(\r\n)

 

请求行:请求方式 请求文件路径(URI) 协议版本

请求方式:GET/POST

请求文件的URI:域名后面的部分。/index.php

协议版本:HTTP/1.1

 

请求头:请求头是具体的协议的集合,每个单独的协议占一行,每一行分为两个部分:协议名:协议的内容

常见的请求头

host:主机名(域名),必要的

accept-encoding:允许服务器传送什么类型的数据,gzip

referer:引用,当前的请求是在上一次什么请求之后再次发起的

connection:连接状态,在请求结束之后,连接应该如何处理keep-alive

accept-language:能够接收的语言,cn,en

cookie:携带的保存在浏览器端的数据

user-agent:当前浏览器的内核信息

accept:可以接收的数据,text,image…

content-length(post):当前浏览器提交的数据的长度,

if-modified-since(get):当前浏览器本地有缓存,询问服务器被请求的脚本有没有更新

content-type(post):数据类型

 

空行:用于结束请求头(请求头不固定数量)

 

请求数据:POST请求的时候会有请求数据

 

有条件可以使用代码来展示下。

 

完整HTTP请求

 

 

HTTP响应

服务器返回数据给浏览器的时候所遵循的规则。

 

HTTP响应包含四个部分:状态行,响应头,空行,响应体(消息体)

 

状态行:协议版本 状态码 状态描述(HTTP/1.1 200 ok)

 

响应头:与请求头一致

常见的响应头如下:

server:服务器信息

date:响应的日期时间

last-modified:当前请求的文件的最后修改时间,与请求头中的if-modified-since

content-length:数据长度(字节)

content-type:数据类型,text/html,image/png

location:重定向,告诉浏览器,重新发起请求

refresh:刷新,指定时间后的重定向

content-encodeing:对应请求中的accept-encodeing

cache-control:缓存控制,告诉浏览器要不要对当前请求的数据进行缓存no-cached/cached

 

空行:用于结束响应头,用于区分响应头和数据(响应体)

 

响应体:html代码

 

修改http响应

php可以修改http响应,但是通过header来实现。

 

设置显示编码

跳转:Location

刷新:refresh

图片输出:浏览器默认服务器给出的数据都是text/html

文件下载:修改数据传输流,修改浏览器接收数据的方式。

 

八种方法:

OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。 
HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。 
GET:向特定的资源发出请求。 
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。 
PUT:向指定资源位置上传其最新内容。 
DELETE:请求服务器删除Request-URI所标识的资源。 
TRACE:回显服务器收到的请求,主要用于测试或诊断。 

CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

 

网络七层模型

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值