狂神Java Web (三)HTTP详解

HTTP协议

1. 什么是HTTP

HTTP(超文本传输协议)是一个简单的请求-响应协议,通常运行在TCP之上。

  • 文本:HTML,字符串,
  • 超文本:图片、音乐、视频、定位、地图
  • 默认端口:80 (HTTPS:443)

2. 两个时代

  • HTTP 1.0
    • HTTP/1.0
    • 客户端可以与web服务端连接后,只能获得一个web资源,断开连接
  • HTTP 2.0
    • HTTP/1.1
    • 客户端与服务器端连接后,可以获得多个web资源

3. HTTP请求

  • 客户端 - 发请求(Request) - 服务器
    百度:
Request URL: https://www.baidu.com/index.html # 请求地址
Request Method: GET # get/post方法
Status Code: 200 OK # 状态码 200
Remote Address: 36.152.44.96:443 # 远程地址
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

请求行:

  • 请求行中的请求方式:GET
  • 请求方式:Get / Post / HEAD / DELETE / PUT ...
    • get:一次请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容。不安全,但高效。
    • post:请求能够携带的参数没有限制,大小无限制,不会在浏览器URL中显示,安全,不够高效。

消息头:

  • Accept: 告诉浏览器支持的数据类型
  • Accept-Encoding: 支持哪种编码格式 GBK UTF-8 GB2312 ISO-8859-1
  • Accept-Language: 告诉浏览器的语言环境
  • Cache-Control: 缓存控制
  • Connection: 告诉浏览器,请求完之后断开还是保持连接
  • HOST: 主机

4. HTTP响应

  • 服务器 - 响应 - 客户端

百度:

Cache-Control: private # 缓存控制
Connection: keep-alive # 保持连接
Content-Encoding: gzip 
Content-Type: text/html;charset=utf-8

响应体:

  • Accept: 告诉浏览器支持的数据类型
  • Accept-Encoding: 支持哪种编码格式 GBK UTF-8 GB2312 ISO-8859-1
  • Accept-Language: 告诉浏览器的语言环境
  • Cache-Control: 缓存控制
  • Connection: 告诉浏览器,请求完之后断开还是保持连接
  • HOST: 主机
  • Refresh: 告诉客户端,多久刷新一次
  • Location: 让网页重新定位

响应状态码:

  • 200 :请求响应成功
  • 3xx :请求重定向
  • 4xx :找不到资源 (资源不存在) 404
  • 5xx :服务器代码错误 500 , 502(网关错误)
posted @ 2021-07-26 22:01  Maple_w  阅读(154)  评论(0)    收藏  举报