Java 之 HTTP 协议

本文深入解析HTTP协议的基础概念、历史版本、请求与响应消息格式。涵盖了请求行、请求头、响应状态码等关键信息,帮助读者理解HTTP的工作原理。

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

HTTP 协议

一、基础

  1、概念

    HTTP:Hyper  Text Transfer Protocol 超文本传输协议。

    传输协议:定义了客户端和服务器端通信时,发送数据的格式。

  2、特点

    (1)基于 TCP/IP 的高级协议

    (2)默认端口号:80

    (3)基于请求/响应模型的:一次请求对应一次响应

    (4)无状态的:每次请求之间相互独立,不能交互数据

  3、历史版本

    (1)1.0:每次请求响应都会建立新的连接

    (2)1.1:请求的连接可以复用

二、请求消息数据格式

  一个请求消息数据(字符串格式):

POST /login.html HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://localhost/login.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
		
username=zhangsan	

  1、请求行

    格式

请求方式 请求url 请求协议/版本

    如:

GET /login.html	HTTP/1.1

    请求方式

      HTTP 协议中有七种请求方式,常用的有两种

      GET:

        ① 请求参数在请求行中,在 url 后;

        ② 请求的 url 长度有限制的

        ③ 不太安全

      POST:

        ① 请求参数在请求体中

        ② 请求的 url 长度没有限制的

        ③ 相对安全

  2、请求头

     请求头:客户端浏览器告诉服务器的一些信息

     语法格式:

请求头名称: 请求头值

      常见的请求头:

      (1)User-Agent

          User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息;

          可以在服务器端获取该头的信息,解决浏览器的兼容性问题

      (2)Referer

          referer :就是告诉服务器,请求从那里来的

          作用:① 防盗链;② 统计工作;

  3、请求空行

    空行:就是用于分割 POST 请求的请求头和请求体的。

  4、请求体(正文)

    GET 请求方式中没有请求体;

    POST 中的请求体就是用来封装请求参数的;

三、响应消息数据格式

     响应消息:服务器发送给客户端的数据。

     一个响应数据格式(字符串格式):

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 101
Date: Wed, 06 Jun 2019 08:08:42 GMT

<html>
  <head>
    <title>Title</title>
  </head>
  <body>
  hello , response
  </body>
</html>

  1、响应行

    (1)组成格式:

协议/版本 响应状态码 状态码描述

  

    (2)响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。

      ① 状态码都是3位数字;

      ② 分类

        1)1xx:服务器收客户端信息,但是没有接受完成,等待一段时间后,发送1xx状态码;

        2)2xx:成功。如:200:代表成功。

        3)3xx:重定向。如:302:代表重定向;304:代表访问本地缓存

        4)4xx:客户端错误。如:404:请求路径没有对应的资源;405:请求方式没有对应的doxxx方法;

        5)5xx:服务器错误。如:500:服务器内部出现异常。

  2、响应头

    (1)格式

头名称:值

  

    (2)常见的响应头:

      ① Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式;

      ② Content-disposition:服务器告诉客户端以什么格式打开响应体数据;

        取值:

          •  in-line:默认值,在当前页面内打开;
          •     attachment;filename=xxx;以附件形式打开响应体。(一般应用于文件下载)

  3、响应空行

    响应空行:用来分割响应头和响应体。

  4、响应体

    响应体:从服务器回传的数据。

转载于:https://www.cnblogs.com/niujifei/p/11618762.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值