20200218--HTTP协议

2021-09-06 17:12

阅读:762

标签:image   src   www   报文   封装   字段   日期时间   odi   web服务器   一、HTTP 概念 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法HTTP 协议和TCP/IP协议族的其他众多协议相同,用户客户端和服务器之间的通信 二、HTTP发展史 1989http诞生:最初设想:借助多文档之间相互关联形成的超文本(HypeText),连接可相互参阅WWW(万维网)1990年http/0.9版本HTTP 0.9版本问世1996 http/1.0版本1996年5月,HTTP正式作为标准被公布1997 http/1.1版本1997年1月公布http1.1版本,也是目前最主流的http协议版本 三、HTTP 的通信过程 (1)先建立TCP连接,三次握手过程,HTTP协议是承载在TCP上的应用层协议(2) 浏览器封装请求消息,将封装后的HTTP请求通过网络寻址发送到具体的服务器上(3)服务器收到请求后解封装,协议HTTP协议头中信息,根据请求方法中的资源路径找到对应的请求资源,然后将封装响应报文发送给客户端(4)HTTP 1.0是短连接,HTTP1.1开始支持长连接(5)请求头Connection字段:表示是否需要持久连接,(HTTP1.1默认进行持久连接)。如:Connection:close,Connection:keep-Alive,表示持久连接 四、HTTP报文 用于HTTP协议交互的信息被称为HTTP报文,请求端的HTTP报文叫请求报文,响应端的叫做响应报文。HTTP报文由多行(CR+LF作换行符)数据构成的字符串文本【报文首部】服务器端或客户端需处理的请求或响应的内容及属性【CR+LF】CR(Carrige Return,回车符)和LF(Line Feed,换行符)【报文主体】应被发送的数据例如:Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8(CRLF)Accept-Encoding:gzip, deflate, sdch(CRLF)Accept-Language:zh-CN,zh;q=0.8(CRLF)Connection:keep-alive(CRLF)Cookie:(CRLF)Host:www.baidu.com(CRLF)Upgrade-Insecure-Requests:1(CRLF) 五、请求报文及响应报文的结构 请求报文:请求行、请求首部字段、通用首部字段、实体首部字段、其他 http 的请求方法(1)GET请求访问已被URI识别的资源(2)POST传输实体的主体(3)PUT传输文件(4)HEADHEAD方法和GET方法一样,只是不反回报文主体部分。用于确认URI的有效性及资源更新的日期时间等(5)DELETE删除文件(6)OPTIONS查询针对请求URI指定的资源支持的方法(7)TRACE让Web服务器将之前的请求通信环回给客户端 六、HTTP响应报文 响应报文请求行、请求首部字段、通用首部字段、实体首部字段、其他http 状态码1XX:信息性状态码,接收的请求正在处理2XX:成功状态码,请求正常处理完毕3XX:重定向状态码,需要进行附加操作以完成请求4XX:客户端错误状态码,服务器无法处理请求5XX:服务器错误状态码,服务器处理请求出错http 常见状态码:200 OK:表示从客户端发来的请求再服务器端被正常处理了301 MOVED Permanently:永久重定向,表示请求的资源已经被分配了新的URI,以后应使用资源现在所指的URI302 Found:临时重定向,表示请求的资源已经被分配了新的URI,希望用户本次使用新的URI访问304 Not Modified:客户端发送附带条件请求时,服务器端允许请求访问资源,但未满足条件的情况。304状态码返回时,不包含任何响应主体部分400 Bad Request: 表示请求报文中存在语法错误,当错误发生时,需修改请求内容后再次发送401 Unauthorized: 该状态码表示发送的请求需要有通过HTTP认证(BASIC、DIGEST认证)的认证信息。若之前已经行过一次请求,则表示用户认证失败403 Forbidden: 表明对请求资源的访问被服务器拒绝了404 Not Found :表明服务器上无法找到请求的资源500 Internal Server Error :表明服务器端在执行请求时发生错误,也有可能是Web应用存在的bug或临时故障503 Service Unavailable:表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求http是无状态的协议:http协议自身不对请求和响应之间的通信状态做保存,协议对于发送的请求和响应都不做持久化处理,这是为了更快处理大量事物,确保协议的可伸缩性,但是随着web的发展,发现因无状态出现事物处理不及时的情况越来越多,后来为了拥有保存状态的功能,引入cooke 的概念。比如登录之后就处于登录状。20200218--HTTP协议标签:image   src   www   报文   封装   字段   日期时间   odi   web服务器   原文地址:https://blog.51cto.com/dingxue/2471905


评论


亲,登录后才可以留言!