正常訪問網址,windows會在host文件中找域名對應的服務器ip地址。沒有再去DNS服務器上解析域名得到IP;
HTTP協議:超文本傳輸協議。終端和服務器通信
物理層:網線、網卡
網絡層:IP協議
傳輸層:建立連接-----TCP(安全、可靠)/UDP
應用層:自定義協議
TCP
UDP
import java.io.IOException;
import java.io.InputStream;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Http通信 {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket();
server.bind(new InetSocketAddress(8888));
System.out.println("開始監聽啦,我就在這監聽,有動靜我就告訴你哦");
Socket accept = server.accept();
System.out.println("收到了某些信息,我讀出來了,你看一下哦,哈哈");
InputStream inputStream = accept.getInputStream();
byte[] buffer = new byte[2048];
int len = inputStream.read(buffer);
System.out.println(new String(buffer,0,len));
}
}
開始監聽啦
收到了某些信息。哈哈
GET / HTTP/1.1 --------------------請求行
Host: localhost:8888 --------------請求頭
Connection: keep-alive ---
Cache-Control: max-age=0---
Upgrade-Insecure-Requests: 1---
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 Edg/83.0.478.37
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6--------請求頭結束
name=XX ------空一行 請求體