网络基础(二):HTTP协议

一、HTTP简介

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是基于TCP/IP通信协议来传递数据。HTTP协议工作于客户端-服务端架构之上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

二、HTTP特点

  1. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  2. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  3. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  4. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
  5. 支持B/S及C/S模式。

三、认识URL

平时我们俗称的 “网址” 其实就是说的 URL。
在这里插入图片描述
http:// :表明我们使用http协议
www.baidu.com:域名,通过DNS协议解析之后,本质上得到的是ip地址
端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口
s:从域名后的最后一个“/”开始到“?”为止,是带层次的文件路径
wd=C%2B%2B:在url当中提交给服务器的值。形式为key=value,叫做键值对,其中value需要进行url编码,字符采用16进制传输,%是为了提示服务器说明该字符是经过url编码的,解释的时候需要url解码。如果传递多个键值对,每个键值对采用&符号进行分割。

三、HTTP请求

HTTP的请求分为请求首行、请求头部、空行、请求体(正文)
在这里插入图片描述

3.1 请求首行

说明请求类型,要访问的资源以及所使用的HTTP版本。请求的方法有Get、Post。
Get:原本是从服务器去获取数据,但是目前也可以从浏览器给服务器提交少量数据,提交的数据在url当中,而每一个浏览器对url的长度是有限制的
Post:向服务器提交数据,提交的数据在请求体(正文)当中。Post方法只是比Get方法更加私密一点,如果要安全,一定使用ssl加密。

Get方法:
在这里插入图片描述

3.2 请求头部

服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由浏览器来定义,并且在每个请求中自动发送。
在这里插入图片描述
Host:主机ip地址
Connection:长连接
User-Agent:操作系统版本,浏览器的内核版本
Referer:告诉服务器,从哪一个界面跳转过来
Accept-Encoding:支持的编码方式
Accopt-Language:支持的语言
Cookie:浏览器保存的一些信息
Location:重定向url

3.3 空行

这部分在请求头部后面,即使内容为空,也不能省略。

3.4 请求体(请求正文)

Get方法没有请求体,Post方法有

四、HTTP响应

一般情况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。其中分为响应首行、响应头部、空行、响应体。
在这里插入图片描述

4.1 响应首行

协议版本、状态码、状态码解释三部分组成。如上图,协议版本为HTTP/1.1,状态码为200,状态码解释为ok。

4.2 响应头部

用来说明客户端要使用的一些附加信息,例如Date日期,Content-Type指定类型。

4.3 空行

这部分在请求头部后面,即使内容为空,也不能省略。

4.4 响应体

服务器返回给客户端的文本信息,空行后面的html部分为响应正文。

五、HTTP状态码

在这里插入图片描述
常见状态码:

200 OK                        //客户端请求成功
400 Bad Request               //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized              //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
403 Forbidden                 //服务器收到请求,但是拒绝提供服务
404 Not Found                 //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error     //服务器发生不可预期的错误
503 Server Unavailable        //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

六、HTTP请求方法

GET:获取资源。支持HTTP1.0、1.1版本
POST:传输实体主体。支持HTTP1.0、1.1版本
PUT:传输文件。支持HTTP1.0、1.1版本
HEAD:获得报文首部。支持HTTP1.0、1.1版本
DELETE:删除文件。支持HTTP1.0、1.1版本
OPTIONS:询问支持的方法。支持HTTP1.1版本
TRACE:追踪路径。支持HTTP1.1版本
CONNECT:要求用隧道协议连接代理。支持HTTP1.1版本
LINK:建立和资源之间的联系。支持HTTP1.0版本
UNLINE:断开连接关系。支持HTTP1.0版本

猜你喜欢

转载自blog.csdn.net/zhao_leilei/article/details/111316523
今日推荐