网络原理之http协议(应用层)详解

http是无状态协议,即协议对于发送过的请求或响应都不做持久化处理(能更快的处理大量事务)
http/1.0:引入了cookie
http协议格式:(首行–头部–body)

在这里插入图片描述

请求访问某台HTTP服务上的/index.html页面资源
请求访问某台HTTP服务上的/index.html页面资源

post方法比get方法多了个主体信息在这里插入图片描述

注意:头信息结束后,有一个空行,头信息和主题信息(如果有),需要这个空行作区分,即使没有主体信息,仍需要此空行
在这里插入图片描述

  1. http请求
    请求: 请求行–请求头(key:value)–空一行–请求体(发送的内容)
    请求行:请求方法,请求路径(url),所用的协议及版本
    请求方法:get、post、head、put、delete、track、options…
    <====================>
    首行:[方法] + [url] + [版本]

    Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔,遇到空行表示Header部分结束
    Body: 空行后面的内容都是Body,Body允许为空字符串. 如果Body存在, 则在Header中会有一个ContentLength属性来标识Body的长度

  2. http响应
    响应:状态行–响应头(key:value)–空一行–响应体
    状态行:协议及版本–状态码–状态码描述
    <====================>
    首行:[版本号] + [状态码] + [状态码解释]
    Header: 同http请求
    Body: 同http请求,但是如果服务器返回了一个html页面, 那么html页面内容就是在body中.

请求头和响应头的数量都是动态的

浏览器能发送http协议,http协议不一定要浏览器来发送 http是一种协议,只要满足这种协议,什么工具都可以发送

HTTP协议方法:

head:和get基本一致,只是不返回内容,返回响应头信息
如只是确认一个内容(照片)还存在,不需要返回(照片的)内容,就用head

get和post请求方法的区别!!!

  1. get()请求数据只能放在url中,对于post的数据,可以放在url和请求体
  2. 由于url长度有限制,所以get方法请求数据不能太多,并且url只能传输ASCII字符,post无限制
  3. 从安全性方面讲,post可以存放请求数据在请求体,相对更安全
  4. 使用get方法可以收藏为书签,可以被缓存,也可以将参数保留在浏览器历史记录中,post不可以
  5. get方法的数据在url对所有人可见,post方法的数据不会显示在url中
    在这里插入图片描述

HTTP状态码:
反应服务器的响应情况
在这里插入图片描述
在这里插入图片描述

http转发和重定向的区别?
本质区别:转发是服务器行为,重定向是客户端行为
重定向特点:两次请求,浏览器地址发生变化,可以访问自己web 之外的资源,传输的数据会丢失
请求转发特点:一次请求,浏览器地址不变,访问的是自己本身的 web 资源,传输的数据不会丢失

HTTP常见的header:

  • Content-Type: 数据类型(text/html等)—>消息体格式,告诉对方该使用什么方式解析(数据类型,指定消息体格式,要对端以响应的格式解析)
  1. text/html HTML格式
  2. image/gif GIF图片格式
  3. image/jpeg JPEG图片格式
  4. x-www-form-urlencoded:表单提交的默认方式,请求体数据格式和queryString一样
  5. application/json:消息体数据格式必须是json字符串
  • Content-Length: Body的长度, 消息体长度
  • Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上
  • User-Agent: 声明用户浏览器版本信息
  • referer: 当前页面是从哪个页面跳转过来的
  • location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问
  • Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能

前端:

  1. html 前端展示控件(页面内容)的资源文件
  2. javascript 前端的脚本语言,写代码完成功能
  3. css 前端样式文件
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值