栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

HTTP协议详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HTTP协议详解

1、概述 1.1 Http协议简介

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
它是一个无状态的协议,即客户端第二次向服务器访问同一个资源时,服务器无法识别出这是第几次访问。这样的好处是简化了服务器的设计,使其能够更好地支持大并发量的http访问。

1.2 Http协议通信过程

OSI七层模型和TCP/IP五层模型:

Http分层解析:

(1)客户端通过浏览器输入域名后,DNS通过HTTP协议将域名解析成对应的ip地址;
(2)传输层通过UDP/TCP协议和server建立连接(三次握手);
(3)握手成功后,组装http报文并发送到server;
(4)server接收到报文,解析报文,发送响应数据;
(5)browser接收到响应数据,解析数据,渲染页面。

2、Http协议常用的请求方式 2.1 常用请求方式的作用与区别
请求方式作用说明
get向服务器请求资源直接请求一个url,或者将请求参数用‘?’拼接在url后,多个参数间用‘&’分隔
post向指定资源提交数据,修改或创建资源将请求数据以key:value形式封装在http协议的请求body中,可以传输大量的数据
put更新指定资源请求参数封装在body中
delete删除request-url所标识的资源
options使服务器传回该资源所支持的所有HTTP请求方法向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作

注:对于get和post来说,实际上其url长度和body长度是不具有限制的,但一般浏览器和服务器会对其做出限制,不同浏览器和服务器的限制可能不同。

2.2 部分参数说明

body中的请求数据有四种类型:

  • application/json:json格式
  • application/x-www-form-urlencoded:浏览器原生表单
  • multipart/form-data:表单格式
  • text/xml:这种直接传的 xml 格式
3、Http协议请求报文格式

  • 请求行:请求方法 url 协议版本
  • 请求头:
    User-Agent:产生请求的浏览器类型;
    Accept:客户端可识别的响应内容类型列表;星号 “ * ” 用于按范围将类型分组,用 “ / ” 指示可接受全部类型,用“ type/* ”指示可接受 type 类型的所有子类型;
    Accept-Language:客户端可接受的自然语言;
    Accept-Encoding:客户端可接受的编码压缩格式;
    Accept-Charset:可接受的应答的字符集;
    Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;
    connection:连接方式(close 或 keepalive);
    cookie:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie;
  • 请求体:请求的数据
4、Http协议响应报文格式

  • 响应行:HTTP/1.1 200 OK
  • 响应头:
    Location:Location响应报头域用于重定向接受者到一个新的位置。例如:客户端所请求的页面已不存在原先的位置,为了让客户端重定向到这个页面新的位置,服务器端可以发回Location响应报头后使用重定向语句,让客户端去访问新的域名所对应的服务器上的资源;
    Server:Server 响应报头域包含了服务器用来处理请求的软件信息及其版本。它和 User-Agent 请求报头域是相对应的,前者发送服务器端软件的信息,后者发送客户端软件(浏览器)和操作系统的信息。
    Vary:指示不可缓存的请求头列表;
    Connection:连接方式;
    对于请求来说:close(告诉 WEB 服务器或者代理服务器,在完成本次请求的响应后,断开连接,不等待本次连接的后续请求了)。keepalive(告诉WEB服务器或者代理服务器,在完成本次请求的响应后,保持连接,等待本次连接的后续请求);
    对于响应来说:close(连接已经关闭); keepalive(连接保持着,在等待本次连接的后续请求); Keep-Alive:如果浏览器请求保持连接,则该头部表明希望WEB 服务器保持连接多长时间(秒);例如:Keep-Alive:300;
    WWW-Authenticate:WWW-Authenticate响应报头域必须被包含在401 (未授权的)响应消息中,这个报头域和前面讲到的Authorization 请求报头域是相关的,当客户端收到 401 响应消息,就要决定是否请求服务器对其进行验证。如果要求服务器对其进行验证,就可以发送一个包含了Authorization 报头域的请求;
  • 响应体:响应正文
5、响应状态码
状态码类别含义
1xxInformational接受的请求正在处理
2xxSuccess请求正常处理完毕
3xxRederection需要进行附加操作以完成请求
4xxClient Error服务器无法处理请求,如400代表请求语法错误导致服务无法识别;401代表需要授权;403代表拒绝提供服务;404代表服务器找不到资源
5xxServer Error服务器处理请求出错,如500代表服务器内部错误;502网关错误;504网关超时
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号