应用层协议---HTTP(一)

应用层协议—HTTP

计算机通信其实是计算机上的应用程序的通信,通常是由客户端程序向服务端程序发起通信请求,服务端向客户端程序返回响应,实现应用程序的功能。

在应用层协议中一般需要规定以下内容:客户端程序能向服务端发送哪些请求、服务端程序能够向客户端返回哪些请求、客户端向服务端发送请求(命令)的顺序、出现意外后怎么处理、发送请求和响应的报文有哪些字段、每个字段的长度、每个字段的值代表什么意思。

下面是一些常见的应用层协议:
超文体传输协议(HTTP):用于访问Web 服务
安全的超文本传输协议(HTTPS):能够将HTTP 通信进行加密传输
简单邮件传输协议(SMTP):用于发送电子邮件
邮局协议版本3(POP3):用于接收邮件
域名解析协议(DNS):用于域名解析
文件传输协议(FTP):用于在Internet 上传和下载文件
远程登录协议(Telent):用于远程配置网络设备、Linux系统和Windows 系统
动态主机配置协议(DHCP):用于计算机或其它自动配置IP地址、子网掩码、网关和DNS等。

这篇博客主要分享的是HTTP的工作过程,即客户端(Web浏览器)和服务端(Web服务器)的交互过程、客户端向服务端发送的请求、服务端向客户端发送的响应、请求报文格式和响应报文格式。

工作步骤

1.客户端连接到Web服务器:浏览器找到Web 服务器的HTTP的端口(默认是80端口),然后建立一个TCP套接字连接(就是IP加端口号。其中,IP号是网络层用来寻找主机的;端口号是运输层用来找进程的,在网络层找到主机后就依据端口号找到相应进程,从而实现用户与服务器的通信。)
2.发送HTTP请求:通过套接字,客户端,也就是浏览器向服务端发送一个报文请求,就是告诉服务器你是打算干嘛的(假如你是想要下载一个电影)。
3.Web服务器接受请求并返回HTTP响应:服务器收到报文后会解析报文,定位请求资源。服务器将资源副本写到TCP套接字,由客户端读取。也就是服务器看完了(解析)你是来干嘛的之后,它就给你找资料,找完后它就复制了一份给你,怎么给你呢,通过响应报文给到你。
4.释放TCP连接:若connection 为close,则服务器主动关闭TCP 连接,客户端被动关闭连接,释放TCP 连接。如果 connection 为keepalive ,则连接会保持一段时间,在该时间内可以继续接受请求。也就是说连接如果是断的,你要再找服务器干点其他的,你就又要重新连接服务器,然后再发送请求了。
5.客户端浏览器解析HTML 内容:浏览器先解析状态行,查看表明请求是否成功的状态。然后解析每一个响应的头部,响应头部告知以下为若干字节的HTML 文档和文档的字符集。浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器显示。简单来说,就是浏览器解析了服务器发过来的响应报文。

这个过程也可以看成是三次握手,四次挥手。(我们今天先不讲,下一篇博客补)

请求报文的格式

报文的字段采用的是ASCII码(不知道的友友们自己查一下),各个字段的长度不同。
HTTP请求报文包含3个部分:请求行、首部行和实体部分。
在这里插入图片描述
图中的CR和LF分别是回车和换行。
1.请求行:主要用来告诉服务端这是请求报文。由3部分组成:请求方法、URL(输入的网址)和版本,中间用空格隔开。
2.首部行:主要用来说明浏览器、服务器或报文主体的一些信息。可以有多行,也可以不用。每个首部行中都有首部字段名和它的值,在整个首部行后面还有一行空行隔开。
3.实体主体:通常是不用的。

HTTP 请求报文的方法

下图是浏览器能够向Web服务器发送的8种请求方法(也叫动作或命令)
在这里插入图片描述
其中get 和post 方法都是用来请求网页的,不同的是post 主要是用来那些需要登录的网页的。
要注意的是方法名称是要区分大小写的,如果某个请求所针对的资源不支持该方法,服务器会返回状态码405,如果服务器不认识或者不支持对应的请求方法时,返回的状态码则是501。(状态码在响应报文中可以看到)

响应报文的格式

在这里插入图片描述
详细说明参照上面的请求报文。

HTTP 响应报文状态码

状态码都是3位数字组成的,共33种,分为5大类:
在这里插入图片描述
下面是一些常见的状态码:
在这里插入图片描述
以上就是HTTP协议的总的介绍了,讲了这么多,这些东西都是在哪里查看的,别急,我们接下来简单讲一下HTTP的抓包。

HTTP的抓包

在这里插入图片描述
然后点击找到更多工具,找到开发者工具,点击(快捷键:ctrl + shift +i)
在这里插入图片描述
想详细了解的友友们可自己找一下

fiddler 抓包工具

以上就是这篇博客的全部内容啦,如果上面的内容有什么遗漏或者不正确的,欢迎各位大佬指正!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值