Http协议

矮人狙击手
• 阅读 1176

Http简介

Http协议——超文本传输协议,是客户端(一般是浏览器)和服务端进行数据通信的基础同时也是客户端和服务端请求和应答的标准,它是一个基于TCP/IP协议之上的应用层协议。Http是基于请求-响应模式的,也就是没有请求的情况下,服务器不会和客户端建立连接,同时Http协议是无保存和无连接的,无保存就是Http协议无论客户端还是服务端都不会对上次的请求和应答的通信状态进行保存,但是某些情况下是需要维持好状态的,因此cookie&session技术的使用对于一些要保持状态的请求来说很重要。无连接就是每次连接都只处理一个请求,一旦处理完毕就断开请求。

Http工作

一般情况下客户端从浏览器发出一个Http请求(请求报文)到服务端的指定端口(一般为80),但客户端服务端中并不一定是直接通信的,客户端和服务端中间可能会存在一些代理服务器(如nginx)、网关之类的中间件对请求进行处理封装后再发到服务端,服务端接到客户端请求后会返回一个应答报文。

具体步骤

1.客户端从浏览器访问某个域名网址,DNS服务器会解析该网址将它转化为IP地址,客户端根据IP地址和指定端口与服务端建立TCP连接。
2.客户端会发出一个请求报文(一般是在TCP第三次握手的第三个报文),请求报文包括请求行,请求头部,空行和请求数据组成发送给服务器。
3.服务端接到客户端发出的请求报文并进行解析,定位到资源位置,将资源写到TCP套接字发送响应报文供客户端读取,响应报文包括响应行,响应头部,空行,和响应数据组成。
4.客户端读取报文,释放TCP连接。
5.客户端开始解析响应报文,解析响应报文时客户端会首先查看状态行的内容,看看请求是否成功,然后解析响应头,响应头里注明了返回的数据是什么字符集,是html、text还是图片。之后客户端开始读取响应数据,将响应数据,将响应数据对照相应格式进行转换让其在浏览器上显示。

Http常用四种请求

Restful风格必用的四个请求
GET:用于从服务端获取数据,一般用于查询。
PUT:用于更新数据,由post延伸而来,在Spring中使用put一般要配置HiddenHttpMethodFilter过滤器 并在表单中添加<input name="_method" value="PUT">
Delete:用于请求删除数据
Post:在Restful风格中一般用于请求添加数据,但日常使用不管增加查询中一搬都会用Post请求。

Http常见状态码

1XX:请求已被服务器接收,正在处理
2XX: 请求已被服务器接收、理解,基本意为请求成功
3XX:需要进一步处理
4XX:请求错误
5XX:服务器处理时发生错误
常见:
200 成功
301 请求已经移动到新的URI,浏览器定向到新的URI
400 客户端请求语法错误,服务端无法理解
404 服务器没有找到客户端发来的请求
405 客户端请求方法被禁止
500 服务器内部错误,无法处理请求
505 服务器不支持该协议的Http请求

具体报文阅读

Http协议
Http协议

Http协议

Http协议

Http协议

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java 实现websocket
最近了解了下websocket和socket这个东西,说不得不来说下为何要使用WebSocket,和为何不用http。为何需要WebSocket?HTTP协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务端对请求做出应答处理。这种通信模型有一个弊端:HTTP协议无法实现服务器主
海军 海军
4年前
5分钟快速梳理你的HTTP体系
HTTP定义1.HTTP(超文本传输协议)是客户端与服务端之间信息交流的桥梁。2.在信息交流之前必须要做的就是客户端通过连接TCP/IP协议80端口,以便服务端侦听HTTP请求。3.HTTP是一种通用的,无状态的应用层协议,基于标准客户机/服务器模型。HTTP特点1.采用“请求/
Wesley13 Wesley13
3年前
HTTP报文
一、HTTP概述(一)什么是HTTP协议?  当在web页面输入url后,浏览器会向web服务器请求资源以显示web页面,而它们之间使用的就是HTTP协议(HyperTextTransferProtocol,超文本传输协议),浏览器就是基于HTTP协议进行文档传输的。(二)HTTP协议的特点1、
Stella981 Stella981
3年前
Http协议、Tomcat、servlet
HTTP协议Http,超文本传输协议是互联网上最广泛的一种网络协议,所有的www文件都必须遵守这个标准。Http协议由http请求和http响应组成http请求:1.请求行请求方式POST、GET、PUT、DELETE等请求的资源/DemoEE/form.html协议版本http/1.12.请求头cookie浏览器
Stella981 Stella981
3年前
Django初识(web框架,django下载安装,http协议)
一web框架的本质及自定义web框架我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求,服务端按照http协议的响应协议来响应请求,这样的网络通信,我们就
Stella981 Stella981
3年前
Django_初识
HTTP协议超文本传输协议(应用层的,基于tcp\ip协议的)特点:无状态,无连接(短连接)请求消息格式:请求行\请求头部\空行\请求数据请求行:GET路径HTTP/1.1响应消息格式:响应行\响应头部\空行\响应数据响应行:HTTP/1.1状态码状态
Wesley13 Wesley13
3年前
http协议请求响应详解
http协议请求响应详解一、http协议简介HTTP是HyperTextTransferProtocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式。二、HTTP1.0的基本运行方式1、基于HTTP协议(https://www.osc
Stella981 Stella981
3年前
Http基础解析
Http基础解析\\概念\\:HyperTextTransferProtocol超文本传输协议\传输协议:定义了,客户端和服务器端通信时,发送数据的格式\特点:1\.基于TCP/IP的高级协议2\.默认端口号:803\.基于请求/响应模型的:一次请求对应一次响应4\.
Wesley13 Wesley13
3年前
HTTP协议的头信息详解
HTTP协议的头信息详解HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。
Stella981 Stella981
3年前
Django基础一之web框架的本质
一web框架的本质及自定义web框架我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求,服务端按照http协议的响应协议来响应请求,这样的网络通信,我们就可以自
Wesley13 Wesley13
3年前
HTTP协议简介
关于HTTP协议的基本介绍。<!moreHTTP协议是基于TCP/IP协议之上的应用层协议,主要用于规定互使用联网中客户端和服务器之间的通信格式,不关心具体传输细节,默认80端口。对于Web开发,不管是前端还是后端开发,了解HTTP协议是必备的一些基本知识。发展历程HTTP/0.9于