Javaweb学习(一)HTTP协议


前言

超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是万维网的数据通信的基础。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)

一、HTTP请求响应步骤

1.客户连接到Web服务器

一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。

2.发送http请求

通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行(request line)、请求头部(header)、空行和请求数据4部分组成。在这里插入图片描述

3.服务器接受请求并返回HTTP响应

Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
在这里插入图片描述

4.释放TCP连接

在HTTP/1.0中默认使用短连接。也就是说。客户端和服务器每进行一次HTTP操作,就建立一次连接,任务中断,连接断开。当客户浏览器访问某个HTML或其他类型的Web页中包含有其他的Web资源(JS文件,CSS文件,图片等)每遇到一个这样的网页资源,浏览器就新建一个HTTP会话。
而从HTTP/1.1中默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码:

Connection:keep-alive

在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问服务器时,会继续使用这一条已经建立的连接,Keep-alive不会永久保持连接,可以在不同的服务器软件设置这个时间。其实质上是TCP协议的长连接和短连接。

5.客户端浏览器解析HTML内容

客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应有,响应头告知以下若干字节的HTML文档,浏览器读取响应数据HTML,根据HTML语法将其格式化,在窗口显示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值