一. 应用层
程序员写的一个个解决实际问题,满足我们日常需求的网络程序,都在应用层。
1. 协议
网络协议,也可简称协议,由三要素组成:
(1)语法:即数据与控制信息的结构或格式;
(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)时序(同步),即事件实现顺序的详细说明。
计算机通信网是由许多具有信息交换和处理能力的节点互连而成的。要使整个网络有条不紊地工作,就要求每个节点必须遵守一些事先约定好的有关数据格式及时序等的规则。这些为实现网络数据交换而建立的规则、约定或标准就称为网络协议。协议是通信双方为了实现通信而设计的约定或通话规则。
协议总是指某一层的协议。准确地说,它是在同等层之间的实体通信时,有关通信规则和约定的集合就是该层协议,例如物理层协议、传输层协议、应用层协议。
二. http协议
1.概念
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
2.认识URL
URL就是我们平常所说的网址,如下图所示:
3.urlencode和urldecode
(1)urlencode:
将字符串以URL编码
返回值:字符串
函数种类:编码处理
编码方式:
1。数字和字母不变。
2。空格变为"+"号。
3。其他被编码成"%"加上他们的ascii的十六进制,规律是这样的
比如“啊”字 编码的十六进制是B0A1——>%B0%A1(Note:它是每个字节前加个%)
(2)urldecode:
对字符串进行URL解码。
返回值:已解码的字符串
函数种类: 编码处理
像 / ?:等这样的字符,已经被url当作特殊意义来理解了,因此这些字符不能随意出现。
比如:某个参数中有这样的字符,就必须对特殊字符进行转义。
转义的规则如下:
将需要转码的字符转为16进制,然后从右往左,取4位(不足四位直接处理),每两位做一位,前面加上%,编码成%XY。
4.http协议格式
1. http请求
(1)请求行:方法(Method) + url(调用符)/ uri(标识符) + http/version\r\n(版本)
(2)kv请求报头:请求的属性,name :value,,,,,,\r\n
(3)空行 \r\n
(4)请求正文-------用户数据
2. http响应
(1)状态行:http/version(版本号)+ 状态码200 + ok
(2)响应报头:key : value \r\n
(3)空行 \r\n
(4)响应正文: html / css / js / jpg / gif png
3.http方法
对于常见的两种方法:GET 和 POST
post比get两者之间的区别:
(1)GET
- 通常用于baidu搜索,先上传再拿下
比如想要搜一个东西,将名字输入,只要信息存在,那么就会出现自己想要的信息。 - 参数小
- 它共分为3部分,没有正文。
- 传参放在url后面。
(2)POST
- 上传,只是将东西向上发送
- 在正文后面进行传参
- 他共分为4部分,有正文
- 参数大,私密
4.http的状态码
常见的状态码:
(1)302:重定向
- 重定向分为两种一种是永久重定向,一种是临时重定向。
永久重定向:只要第一次访问之前链接,跳转之后,之后的访问直接去找新的链接。
临时重定向:每一次访问,都需要跳转。
(2)404:无法找到资源
5.http常见的header
- 1.Content-Type:数据类型(text/html等)。—》扩展名
- 2.Content-Length:Body的长度。—》读多少个数据
- Host:客户端告知服务器,所请求的资源是在哪个主机的哪个端口上
- User-Agent:声明用户的操作系统和浏览器版本信息
- referer:当前页面是从哪个页面跳转过来的
- location:搭配3xx状态码使用,告诉客户端接下来要去哪里访问
- Cookie:用于在客户端储存少量信息,通常用于实现(session)的功能
优点:可以保存用户的登陆信息,下次访问的时候,就不需要登陆。