应用层协议http

之前谈到协议的时候,只是简单的理解成一种约定,但是socket api的接口在读写数据时,都是按照字符串的方式来发送接收的,如果我们要传输一些结构化的数据又该怎么办呢?由此就有了序列化和反序列化,即在发送数据时结构化的数据按照一个规则转化成字符串,接收到数据的时候再按照相同的规则把字符串转化成数据。
这种在一端发送时构造的数据,在另一端接收时能够正确的解析,我们将其称为应用层协议。
下面我将介绍应用层协议—http

一、URL

平时我们认为的网址, 其实就是URL,URL可以理解为跨主机进行资源定位的标识符。
下图是URL各个部分解释:
在这里插入图片描述

二、http协议格式

2.1http请求

在这里插入图片描述

2.2http响应

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190713214448550.png?x-oss-process=image
通过http的响应和请求格式可以看出,http协议是以行为基本单位的,而报头下的空行将报头和有效载荷很好的分离。

三、http状态码

1xx----信息状态码,接收的请求正在处理
2xx----成功状态码,请求正常处理完毕
3xx----重定向状态码,需要location完成重定向
4xx----客户端错误状态码,服务器无法处理请求
5xx----服务器错误状态码,服务器处理请求出错

四、http常见header

  • content-type: 数据类型(text/html)
  • content-length: body的长度
  • host: 客户端告知服务器,所请求的资源是在哪个主机的哪个端口上
  • user-agent: 声明用户的操作系统和浏览器版本信息
  • referer: 当前页面是从哪个页面跳转过来的
  • location:搭配3XX状态码使用,告诉客户端接下来要去哪里访问
  • cookie:在本地浏览器下存储的一个文件,通常用于实现会话(session)的功能
    注:cookie和session都是用来保存信息的,只不过cookie是在客户端,session是在服务器端,如果用户已经登录,服务器就会在cookie中保存一个session_id,下次再请求的时候,服务器识别session_id,然后去session库中查找具体数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值