HTTP协议

2017-03-02  本文已影响0人  醒醒Coco

HTTP 协议是超文本传输协议,用于客户端和服务器之间的通信。
TCP/IP 协议族分为4层:应用层、传输层、网络层、数据链路层。
HTTP 是应用层的协议(FTP 文件传输协议,DNS 域名系统)

TCP/IP 通信传输流

  1. 发送端的客户端在应用层(HTTP协议)发送一个Web页面的HTTP请求。
  2. 在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
  3. 在网络层(IP协议),增加作为通信目的地的MAC地址转发给链路层。
  4. 接收端的服务器在链路层接收到数据,按序往上传发送,一直到应用层。当传输到应用层,才算真正接收到客户端发送过来的请求。

HTTP 协议的特点:

  1. 无状态协议:HTTP协议自身不对请求和响应之间的通信状态进行保存。(为了更快的处理大量事物,减少服务器CPU及内存资源的消耗)。为了实现期望的保持状态
    功能,引入了Cookie技术。
    Cookie技术在请求和响应报文中写入Cookie信息。但Cookie保存在客户端,一些重要信息不安全,所以把重要的信息放在服务器中,也就是SessionCookie拿到Session id,找到对应的Session
  2. 无连接协议
    传输层:TCP(三次握手,四次挥手)
    TCP三次握手:TCP协议把数据发送出去后,不会对传送后的情况置之不理,一定会向对方确认是否发送成功。握手中使用了TCP的标志:SYN和ACK。
    发送端先发送一个带有SYN标志的数据包给对方。接收端收到后,回传一个SYN/ACK标志的数据包以表示传达信息确认。最后,发送端再回传一个带ACK的数据包,代表握手结束。
    1.1版本,引入Keep-alive模式,保持当前TCP连接,避免了建立或重新建立。
HTTP1.1

1.0版本,无状态(每个请求都是独立的)无连接(每次只有一个请求)

HTTP1.0

状态码

  1. 2XX
  1. 3XX 重定向
  1. 4XX 客户端错误
  1. 5XX 服务器

HTTP URL

HTTP默认端口80
HTTPS 默认端口443
HTTP的URL是怎么组成为一个接口的。如图:


一个URL就是一个接口,接口大致会分为一下几个部分:
  1. 请求协议:
    http --- 普通的http请求
    https --- 加密的http请求,传输数据更加安全
    ftp --- 文件传输协议,主要用来传输文件
  2. 请求IP:就是指提供接口的系统所部署的服务器地址
  3. 请求端口:如果不填端口,默认是80,否则需要填写端口号
  4. 接口路径:指系统提供的接口在什么位置
  5. 接口参数:参数在接口路径后,用“?”来表示路径地址完了,剩下的都是参数了,用“&”来区分参数个数, 如下示例:
    http://127.0.0.1:8080/light?opt=open&use=yy&pwd=123456

HTTP请求消息

请求消息的结构:


请求消息的结构

GET /simple.html HTTP/1.1 请求行(请求方法,URI协议版本)
多个消息头
空行
(GET请求空行下面无实体,Post请求下面有实体)

HTTP响应消息

响应消息的结构


响应消息的结构

HTTP/1.1 200 OK 状态行(协议版本,状态码,原因短语)
多个消息头
一个空行
body 实体内容

HTTP请求和响应对比

请求方法种类

POST /servlet/ParamServlet HTTP/1.1
Host:
Content-Type:application/x-www-form-urlencoded
Content-Length:28

 param-abc&param2=xyz

特点:传送的数据量要比GET方式传送的数据量大得多。

上一篇 下一篇

猜你喜欢

热点阅读