1、HTTP的GET请求跟POST请求有什么不同?
浏览器要想取得用户要求的网页必须先于网页所在的服务器建立TCP连接。 HTTP是为分布式超文本信息系统设计的一个协议。特点是建立一次连接,只处理一个请求,发回一个应答,然后连接就释放了。所以被认为是无状态的协议,即不能记录以前的操作状态。
资源统一定位器 URL(uniform resource locator)由3部分组成,指出了用户要求的网页的名字、网页所在的主机的名字以及访问网页的协议。 用户选择了一个要访问的网页,则浏览器和Web服务器的交互过程如下 1、浏览器接收URL 2、浏览器通过DNS服务器查找URL 3、DNS给出URL对应的IP地址 4、浏览器与主机IP地址的端口建立TCP连接 5、浏览器发出请求GET/welcome.html文件 6、服务器发送welcome.html文件 7、释放TCP连接 8、浏览器显示welcome.html文件
HTTP协议是TCP/IP协议族的应用层协议。 HTTP协议客户端请求request消息包括:请求行、请求头部、空行、请求数据 图片来源: https://segmentfault.com/a/1190000023940344 服务端响应也由四个部分组成,分别是响应行、响应头、空行、响应体 请求方法: GET:获取资源,用来请求访问已被URI(统一资源标志符)识别的资源 POST:用来传输实体的主体
区别: 请求参数:GET请求参数是通过URL传递的,多个参数以&连接,POST请求放在request body中。 请求缓存:GET请求会被缓存,而POST请求不会,除非手动设置(带有缓存参数的请求头) 对参数的数据类型:GET只接受ASCII字符,而POST没有限制。
get后退不会有影响,post后退会重新进行提交。 浏览器直接输入网址就是GET请求。
2、TCP协议清楚吗?知道什么是close wait吗?
坦诚讲 我只知道TCP三次握手,且是可靠的协议,但具体的说不出来,这里重点总结一下
《Java网络编程》 P19 IP(网际协议),由于两点间存在多个路由,并且两点间的最短路径可能由于网络业务流量或其他因素,随着时间而改变,所以构成某个特定数据流包可能不会才用相同的路由。另外,即使他们全部到达,到达的顺序与发送的顺序也可能不同。为了改进这种基本的机制,将TCP置于IP之上,使连接的两端能过确认接收到IP包,以及请求重传丢失或被破坏的包。TCP允许接收端的包按发送时顺序重新组合在一起。 由于TCP开销高,所以出来UDP UDP是不可靠的协议,它不能保证包一定到达目的地,也不能保证包会以发送时相同的顺序到达。 ICMP它使用原始IP数据报在主机之间传递错误消息。(使用这个协议的就是Ping程序) Java不支持ICMP(internet Control Message Protocol),也不允许发送原始IP数据报(只允许发送TCP片或UDP数据报)。Java支持的协议只有TCP和UDP,以及建立在TCP和UDP之上的应用层协议。所有其他传输层、网际层和更底层的协议,如ICMP、IGMP、ARP(Address Resolution Protocol)、RARA等在java程序中只能通过链接到原生代码来实现
IP地址 IPv4网络中的每天计算机都由一个4字节的数字标识,每个数都是一个无符号字节。 IPv6底子通常写为冒号分隔的8个区块,每个区块是4个十六进制数字。 IPv6在Java 1.4以后支持 域名系统DNS Domain Name System
有一些地址区块和模式很特殊。以10.、172.16、172.31、192.168.开头的所有IPv4地址都未分配。这些地址可以在内部网使用,但是使用这些地址的主机不允许加入全球Internet。
当数据发送到特定IP地址的某个机器上的Web服务器时,他还会发送到该机器的特定端口,接收方检查接口收到的各个包,将数据发送给监听这个端口的程序。各种通信业务流就是这样区分的。
协议是定义计算机如何通信的一组明确的规则。
|