Java网络编程 03HTTP
目录
Cookie编程:CookieManager / CookiePolicy / CookieStore
HTTP请求
浏览器中,输入www.baidu.com,然后回车,到底背后发生了什么呢?
HTTP建立在TCP/IP之上,属于应用层协议。HTTP连接底层使用TCP/IP来传输数据。对于从客户端发往服务器的每一个HTTP1.0请求,都有四个步骤:
1:建立连接:默认情况下,客户端在端口80打开与服务器的一个TCP连接。
2:发送请求:客户端向服务器发送请求信息,请求指定路径上的资源。
3:应答响应:服务器向客户端发送响应信息。
4:关闭连接:服务器关闭连接。
以上是传统的HTTP1.0版本时代的四个基本步骤。现在都是HTTP1.1及以后的版本时代,HTTP1.1之后,可以建立连接后,要求保持长连接状态(Connection:keep-alive),这样第2,3两步就可以反复的进行,这样有更好的扩展性以及高效率(因为每次建立连接/关闭连接带来的网络开销和延迟,比数据包传输时的耗时更多)
请求信息举例:http://211.156.201.13:7001/cnpl/xx.jsp?entityid=1&_dc=2
请求首行:
GET /cnpl/xx.jsp HTTP1.1
请求头部:
Accept text/html,application/xhtml+xml,application/xml;
客户端能接受的响应内容类型 Accept-Encoding gzip, deflate
客户端能接受的响应内容编码 Accept-Language zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
客户端能接受的响应内容语言 Content-Type application/x-www-form-urlencoded
客户端请求信息的类型 Cookie f5_cspm=1234;
ys-cnpl.iwms.projectId=n%3A1028491;
客户端发送给服务器的Cookie Host 211.156.201.13:7001
客户端想要访问的服务器主机 User-Agent Mozilla/5.0 Firefox/47.0
客户端的浏览器版本 X-Requested-With
XMLHttpRequest
客户端支持Ajax技术 Connection keep-alive HTTP1.1版本的长连接技术 请求参数:
entityid=1&_dc=2
客户端请求:
服务器响应:
响应内容:HTTP/1.1版本(支持长连接)、200状态码、OK成功
响应状态码:1XX、2XX、3XX、4XX、5XX
HTTP方法
方法名 | 方法功能描述 |
GET | 静态页面:用于获取服务器的静态页面 |
POST | 提交表单:提交客户端浏览器里的页面中的表单数据至服务器 |
PUT | 上传文件:上传客户端浏览器里的页面中的资源文件至服务器 |
DELETE | 删除资源:删除服务器上的指定资源 |
HEAD | 类似GET,但是它只返回响应头信息,常用于检查本地缓存文件是否过期 |
OPTIONS | 询问服务器是否可处理指定的资源 |
TRACE | 回显客户端请求信息进行调试,特别是代理服务器不正常时 |
Cookie
Cookie概念:Set-Cookie
Cookie作用域:Domain / Path