随笔- 23  文章- 0  评论- 0  阅读- 1894 

传输层协议:

UDP:用户数据报,面向无连接,通信效率高,常用于音频视频传输,但是不能保证数据完整性

TCP:传输控制协议,通过三次握手建立连接,实现可靠无差错的数据传输服务。

java.net.Socket(客户端)、ServerSocket(服务器端)

套接字:包括IP和端口号的网络单位

获取套接字输入输出字节流:getOutputStream()getInputStream() ,其中的write、read方法获取的同样是字节流

TCP

三次握手:

实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。

四次挥手:

TCP的连接是双向的,当某一方确认自己数据发送完成后(FIN+ACK)也需要等待另一方确认自己数据发送完成(FIN+ACK)

当最后一个FIN-ACK 发送过后需要等待二倍报文最大生存时间,如此FIN发送方在确认超时后仍然可以有一倍报文最大生存时间可以重发

HTTP状态码

类别 原因短语
1xx Informational(信息性状态码) 接受的请求正在处理
2xx Success(成功状态码) 请求正常处理完毕
3xx Redirection(重定向) 需要进行附加操作以完成请求
4xx Client error(客户端错误) 客户端请求出错,服务器无法处理请求
5xx Server Error(服务器错误) 服务器处理请求出错

201 Created :使用POST请求,创建成功

301 Moved Permanently:永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL;

302 Found:临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL;

400 Bad Request:表示请求报文中存在语法错误;

401 Unauthorized access:没有权限的访问

403 Forbidden:服务器拒绝该次访问(访问权限出现问题)

404 page Not Found:表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用;

405 methods not allowed:请求方法不对,或者参数错误

503 Server Unavailable:表示服务器暂时处于超负载或正在进行停机维护,无法处理请求

500 Inter Server Error:表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时;

GET&POST

采用 GET 方法向服务器上传数据时,一般将数据添加到 URL 后面,并且二者用「?」连接,各个变量之间用「&」连接。由于对 URL 的长度存在限制,因此采用这种方法能上传的数据量非常小,通常在 1024Byte 左右。而 POST 方法传递数据是通过 HTTP 请求的附件进行的,传送的数据量更大一些,一般默认为不受限制的。

由于 GET 方法上传的数据是添加在 URL 中的,因此上传的数据被彻底「暴露」出来了,本身存在安全隐患,尤其是当用户需要向服务器提交一些敏感信息时。而 POST 方法向服务器提交的内容在 URL 中并没有明文显示,对用户都是不可见的,所以,安全性更好一些。

HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

PUT:从客户端向服务器传送的数据取代指定的文档的内容。

DELETE:请求服务器删除指定的页面。

DNS缓存

DNS缓存不仅仅产生于操作系统,在浏览器和应用程序以及IPS网络运营商都会对DNS进行缓存,下面详细讲解这些DNS缓存的位置及清空的方法

#DOS
ipconfig /flushdns

HTTP:1.0、1.1、2.0

请求行:GET /java.html HTTP/1.1

一般用GET的请求查询数据【URL地址后面带的参数不能超过1K】

用POST请求向服务器发送数据,数据传输无大小限制

状态行: HTTP版本号 状态码 原因叙述

HttpServletResponse:由状态行、实体内容、消息头【编码格式等】、一个空行组成

HTTP请求报文构成

  1. 请求行:包括请求方法、URL、协议/版本
  2. 请求头(Request Header)
  3. 请求正文

长连接&短连接

长连接多用于操作频繁,点对点的通讯,使用同一个TCP连接来发送和接收多个HTTP请求/应答,节省TCP网络调用建立连接三次握手的时间,而短连接能够减小服务器负担,可以有效应对高并发场景

 posted on   春秋流千事  阅读(203)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示