尧图精选

TCP/IP五层模型与HTTP协议完整核心梳理

🕒 发布时间:2026/10/2 17:26:59 📁 来源:尧图网络
1.TCP/IP分为五层:应用层传输层网络层数据链路层物理层。2.自定义一个协议1根据需求明确传输哪些信息2约定好信息组织的格式行文本格式xml可读性好冗余较多json可读性好冗余一般protons可读性差冗余最小3.HTTP协议应用层的协议客户端发出一个请求服务器就返回一个响应。是一个文本格式的协议。请求报文首行方法URL版本号请求头header)键值对结构空行用来标识header结束了正文body有的请求有正文有的没有响应报文首行版本号状态码状态码描述响应头header空行用来标识header结束了正文body4.每个部分的具体详情URL描述网络上的唯一资源的位置不是HTTP协议专属的可以给各种协议提供支持。协议名称://要访问的服务器的ip地址或域名端口号/带层次的结构路径查询字符串Query String键值对结构eg:jdbc:mysql://127.0.0.1:3306/java?characterEncodingutf8useSSLfalseurlencodeURL里面本身就有一些特殊的符号代表不同的含义Query String里面的内容是程序员自定义的如果包含了特殊含义的字符会导致识别出错所以需要转义。对于像中文这类非英语文字也需要转义。把数据中的二进制内容每个字节取出来用十六进制表示前面加上%5.重要的方法GET:获取资源。一般是没有body的需要传输数据的话通过Query String传过去。POST传输实体主体这两个方法的区别经典面试题1语义上的区别可以混着用2携带数据的方式GET—Query StringPOST—body通常来讲是这样也有一些例外3GET请求通常建议设计成幂等POST没有要求幂等同一个请求重复发多少次得到的响应/服务器状态都是一样的。4GET如果是幂等就允许缓存结果POST由于不要求幂等就认为不能被缓存。6.报头header)详解键值对结构分成很多行每一行是一个键值对键和值之间用空格分割1Host表示服务器主机的地址和端口Host:gitee.com端口号绝大部分情况下和URL里面的属性是一样的如果使用了代理就不一样了。使用了代理之后也可以通过Host来获取到最原始的目标。2Content-Lengthbody中的数据长度单位是字节。请求中有body才存在HTTP协议就是把字符串构造成HTTP的格式首行请求头空行正文再写入到tcp socket中对于TCP来说一个连接上可以发送多个请求如果请求没有body读到空行时就可以认为结束了如果有body就要通过header中的Content-Length的值来读取固定的字节长度。3Content-Type请求中的body的数据格式4User-AgentUA告诉服务器客户端是什么浏览器型号、版本、操作系统5Referer记录你是从哪个页面跳转过来的浏览器展示页面的过程中页面虽然可以通过js来实现一些逻辑但是无法访问硬盘文件系统。在一些场景下又需要访问硬盘因此引入Cookie机制。6 Cookie是浏览器允许网页在本地硬盘存储数据的一种机制
上一篇/下一篇内容由系统自动关联 返回资讯列表 →