JavaEE初阶,网络原理HTTP报头篇

认识请求"报头(header)"

header 的整体结构格式也是"键值对"结构。每一行是一个键值对,键和值之间使用空格分割。

Host

表示服务器主机的地址和端口。

Content-Length

表示body中的数据长度,单位是字节。

对于TCP来说,一个连接上可以发送多个请求。服务器这边收到数据就得区分一下,数据是从哪里到哪里是一个完整的http请求数据。
原理:

  • 如果没有body的http请求,读到空格,就是标志结束。
  • 有body的http请求,先读取首行和header,再读到空行;在解析header中的Content-Length根据这里解析的值,来判断接下来读取的固定字节的长度。
Content-Type

表示请求的body中的数据格式。

约定了接收方如何解析body中的数据

注意: 请求和响应都会用到 Content-Type,如果有body,并且没有这两个属性都认为是非法的/错误的http报文。

User-Agent(简称UA)

表示浏览器/操作系统的属性。

格式如下:

Referer

表示这个页面是从哪个页面跳转过来的。

Cookie就是浏览器允许网页在本地硬盘存储数据的一种机制,不是让网页代码直接访问文件系统,而是通过Cookie进行间接访问。

状态码

状态码表示访问⼀个页面的结果。 (是访问成功, 还是失败, 还是其他的⼀些情况...)。

200 OK

这是⼀个最常见的状态码, 表示访问成功。

404 Not Found

没有找到资源。浏览器输⼊一个 URL, ⽬的就是为了访问对方服务器上的⼀个资源. 如果这个 URL 标识的资源不存在,那么就会出现 404。

403 Forbidden

表示访问被拒绝. 有的页面通常需要用户具有⼀定的权限才能访问(登陆后才能访问). 如果用户有登陆直接访问, 就容易见到 403。

405 Method Not Allowed

若请求的方法和服务器这边声明的注解不匹配,就会出现405.
500 Internal Server Error

服务器出现内部错误. 一般是服务器的代码执行过程中遇到了一些特殊情况(服务器异常崩溃)会产生这个状态码。
504 Gateway Timeout

当服务器负载比较大的时候, 服务器处理单条请求的时候消耗的时间就会很长, 就可能会导致出现超时的情况。
302 Move temporarily

临时重定向。在登陆页面中经常会见到 302. 用于实现登陆成功后自动跳转到主页。
301 Moved Permanently

永久重定向。当浏览器收到这种响应时, 后续的请求都会被自动改成新的地址。
状态码小结:

HTTPS

明文加密得到密文,密文解密得到明文。

证书: 服务端在使用HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性。

这个证书可以理解成是一个结构化的字符串, 里面包含了以下信息:

• 证书发布机构

• 证书有效期

• 公钥

• 证书所有者

• 签名

• ...

需要注意的是:申请证书的时候,需要在特定平台⽣成查,会同时生成一对密钥,即公钥和私钥。这对密钥就是用来在网络通信中进行明文加密以及数字签名的。

相关推荐
垆边人似月.12 小时前
RDMA项目踩坑(一):为什么最后一块数据必须使用实际长度?
网络·c/c++·rdma·高性能io·tcp与rdma
YH_Analytics12 小时前
2026 高压 E-House 市场深度分析报告市场格局
网络·数据库
zl_dfq12 小时前
Windows 下 UDP 套接字编程指南
网络·windows·udp
日常筹谋记12 小时前
数据中心逆变设备运维|通讯对接、动环接入与多系统联动方案科普
运维·网络
CoderYanger13 小时前
Java EE 进阶:5. Spring IoC&DI(第二弹):Spring IoC
java·开发语言·spring boot·spring·面试·职场和发展·java-ee
上海研博数据13 小时前
HY-K 太阳能控制器协议|水利物联太阳能供电系统接入指南
网络
zerwave13 小时前
从慢订阅者到发布者:LiteBus 如何用 Unix Socket 背压保护可靠 Topic
网络·机器人·unix
piaoyiren13 小时前
Python FTP 服务端项目详细功能文档
网络·数据库·python
半杯咖啡半行码13 小时前
QML进阶实战(二):异步网络、性能优化与工程化落地
网络·qt·性能优化·qml
悟天特斯14 小时前
安防一体化:从“各管各的“到“全局联动“
java·大数据·网络·人工智能·物联网