Java网络编程——HTTP编程

本文介绍了HTTP协议的基本概念,包括HTTP请求和响应的结构,以及GET和POST请求的区别。还讨论了HTTP状态码、TCP连接复用以及HTTP/2的多路复用特性。最后,文章指出Java进行HTTP客户端编程的本质与浏览器类似,主要目标是获取服务器响应内容。

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

一、HTTP协议概述

1、什么是 HTTP ?

        HTTP 就是目前使用最广泛的Web应用程序使用的基础协议,例如,浏览器访问网站, 手机App访问后台服务器,都是通过 HTTP 协议实现的。 HTTP 是 HyperText Transfer Protocol 的缩写,翻译为超文本传输协议,它是基于 TCP 协议之上的一种请求-响应协议。

        HTTP 请求的格式是固定的,它由 HTTP Header 和 HTTP Body 两部分构成。第一行 总是 请求方法 路径 HTTP版本 :例如, GET / HTTP/1.1 表示使用 GET 请求,路径 是 / ,版本是 HTTP/1.1 。 后续的每一行都是固定的 Header: Value 格式,我们称为 HTTP Header ,服务器依 靠某些特定的 Header 来识别客户端请求,例如:

  • Host :表示请求的域名,因为一台服务器上可能有多个网站,因此有必要依靠 Host 来识别请求是发给哪个网站的;
  • User-Agent :表示客户端自身标识信息,不同的浏览器有不同的标识,服务器依 靠 User-Agent 判断客户端类型是 IE 还是 Chrome ,是 Firefox 还是一个 Py thon 爬虫;
  • Accept :表示客户端能处理的 HTTP 响应格式, */* 表示任意格式, text/* 表示任意文本, image/png 表示PNG格式的图片;

        如果是 GET 请求,那么该 HTTP 请求只有 HTTP Header ,没有 HTTP Body 。如果是 POST 请求,那 么该 HTTP 请求带有 Body ,以一个空行分隔。一个典型的带 Body 的 HTTP 请求如下:

POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 30

username=hello&password=123456

        POST 请求通常要设置 Content-Type 表示 Body 的类型, Content-Length 表示 Body 的长度,这样 服务器就可以根据请求的 Header 和 Body 做出正确的响应。

        此外, GET 请求的参数必须附加在 URL 上,并以 URLEncode 方式编码,例如: http://www.exampl e.com/?a=1&b=K%26R ,参数分别是 a=1 和 b=K&R 。因为 URL 的长度限制, GET 请求的参数不能太 多,而 POST 请求的参数就没有长度限制,因为 PO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值