Java大数据之路--HTTP协议

本文深入解析HTTP协议,涵盖其概念、版本、请求与响应机制。详细介绍了HTTP请求与响应的组成部分,包括请求行、请求头、状态码及响应头等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • HTTP协议

目录

HTTP协议

HTTP概述

HTTP协议概念

HTTP协议版本

HTTP请求

HTTP请求的细节——消息头

HTTP响应

HTTP响应细节——常用响应头


  • HTTP概述

1)HTTP HyperText Transfor protocol(超文本传输协议)。

2)HTTP协议规定了浏览器和服务器之间交互数据的格式。在浏览器和服务器建立链接之后,可以依照协议进行数据交互。

3)~OSI网络七层模型:

应用层(HTTP、FTP、SMTP、POP3、TELNET)->表示层->会话层->传输层(TCP、UDP)->网络层(IP)->数据链路层->物理层

  • HTTP协议概念

基于请求响应模型。

一次请求对应一次响应。

请求只能由浏览器发出,服务器根据请求作出响应。

  • HTTP协议版本

1)HTTP/1.0

在浏览器和服务器建立链接之后,浏览器发送一次请求, 服务器作出一次响应,链接立刻断开。

2)HTTP/1.1

在浏览器和服务器建立链接之后,浏览器可以连续发送多次请求,服务器会依次作出响应。在等待一段时间时候,如果没有更多的请求发出,则链接断开。

3)问题:一个web页面中,使用img标签引用了三幅图片,当浏览器访问服务器中的这个web页面时,浏览器总共会访问几次服务器,即向服务器发送了几次HTTP请求。

访问页面一共需要4次请求,一次请求HTML页面,三次请求img图片。

由于是HTTP/1.1协议,所以只需要建立一次链接。

  • HTTP请求

请求的组成的四部分:

请求行

GET  /login/1.html   HTTP/1.1

多个请求头

Host: localhost

Connection: keep-alive

Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9

一共空行

 

请求实体内容

请求参数

1)请求行

请求方式:一共有:7种  POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT

常用的有两种:get post

get :参数拼接在地址栏   不安全    请求地址长度不能超过1kb

post:参数在底层以流的形式传输     安全    在理论上传输的参数长度不受限

2)请求资源:

/login/1.html     由web应用的虚拟路径和web资源名组成

3)请求实体内容:请求参数

如果以post请求发送参数,则参数会进入请求实体内容中,以键值对的形式存在。

只有一种形式为post请求:在使用form表单时,将提交方式method改为post。其他情况都是get请求。

  • HTTP请求的细节——消息头

用于HTTP请求中的常用头     

Accept: text/html,image/*      通知浏览器可以接受什么数据  现在表示接收文本数据,任意格式的图片数据

Accept-Charset: ISO-8859-1

Accept-Encoding: gzip,compress   发送数据的压缩格式

Accept-Language: en-us,zh-cn    语言

Host:www.baidu.com    请求的地址,可以通过观察Host头来确定访问对应地址服务器上的哪个虚拟主机。

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT  与响应头last modified呼应

Referer: http://www.baidu.com/index.jsp     防盗链

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

Cookie:SS=Q0=5Lb_nQ; path=/search

Connection: close/Keep-Alive  

Date: Tue, 11 Jul 2000 18:23:51 GMT

  • HTTP响应

响应组成的四部分:

协议版本 状态码 原因叙述

状态行

 HTTP/1.1    200   OK

多个响应头

Server: Apache-Coyote/1.1

Content-Type: text/html;charset=utf-8

Content-Language: en

Content-Length: 979 Date: Wed, 07 Aug 2019 08:25:40 GMT

一个空行

 

响应实体内容

响应结果---页面组成

1)状态行

2)状态码:302  + location  请求重定向

                  304  307   缓存

                  404  访问资源路径不存在

                  500   502  503  505   服务器报错

3)响应实体内容:

用于存储响应结束数据的一个缓冲区。常用于存储响应的HTML页面组成,也会存储一些响应结果数据

  • HTTP响应细节——常用响应头

HTTP响应中的常用响应头

Location: http://www.baidu.com/index.jsp    配合302实现请求重定向

Server:apache tomcat    服务器类型

Content-Encoding: gzip   服务器发送数据的压缩格式

Content-Length: 80    发送数据的长度

Content-Language: zh-cn   发送数据的语言环境

Content-Type: text/html; charset=GB2312     可接受数据格式和语言

Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT  与请求头的if modified since头呼应

Refresh: 1;url=http://www.it315.org     定时跳转  经过1秒后跳转到url地址。

Content-Disposition: attachment;filename=aaa.zip

Transfer-Encoding: chunked 

Set-Cookie:SS=Q0=5Lb_nQ; path=/search

ETag: W/"83794-1208174400000"

Expires: -1 通知浏览器是否缓存当前资源,如果这个头的值是一个以毫秒为单位的值就是通知浏览器缓存资源到指定的时间点,如果值是0或-1则是通知浏览器禁止缓存。HTTP/1.0

Cache-Control: no-cache   通知浏览器是否缓存的头 HTTP/1.1    max-Age=5  (秒)

Pragma: no-cache    通知浏览器是否缓存的头 HTTP/1.0

Connection: close/Keep-Alive  

Date: Tue, 11 Jul 2000 18:23:51 GMT

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值