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机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性。

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

• 证书发布机构

• 证书有效期

• 公钥

• 证书所有者

• 签名

• ...

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

相关推荐
yuanmenghao3 小时前
Linux 性能实战 | 第 7 篇 CPU 核心负载与调度器概念
linux·网络·性能优化·unix
那就回到过去3 小时前
MPLS多协议标签交换
网络·网络协议·hcip·mpls·ensp
那就回到过去4 小时前
VRRP协议
网络·华为·智能路由器·ensp·vrrp协议·网络hcip
极客小云4 小时前
【ComfyUI API 自动化利器:comfyui_xy Python 库使用详解】
网络·python·自动化·comfyui
符哥20085 小时前
用Apollo + RxSwift + RxCocoa搭建一套网络请求框架
网络·ios·rxswift
相思难忘成疾5 小时前
通向HCIP之路:第四步:边界网关路由协议—BGP(概念、配置、特点、常见问题及其解决方案)
网络·华为·hcip
君陌社区·网络安全防护中心5 小时前
基于Mininet模拟SDN环境
网络
Porco.w5 小时前
C#与三菱PLC FX5U通信
网络·c#
枷锁—sha5 小时前
Burp Suite 抓包全流程与 Xray 联动自动挖洞指南
网络·安全·网络安全
云飞云共享云桌面5 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能