[SOLUCIONADO] Sockets y HTTP en C/C++

Iniciado por lechuzafantasma, Agosto 01, 2016, 06:46:06 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 01, 2016, 06:46:06 PM Ultima modificación: Agosto 06, 2016, 03:51:13 PM por Stiuvert
Saludos estoy estudiando algo de sockets en C/C++ utilizando la libreria "winsock2.h" creo un socket.

El mensaje que le envio al servidor es el siguiente:

Código: text
GET / HTTP/1.1\r\n\r\n

Y esta es la informacion recibida

Código: text
Reply received

HTTP/1.1 400 Bad Request
Date: Mon, 01 Aug 2016 21:31:50 GMT
Server: Apache/2.4.10 (Debian)
Content-Length: 311
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.10 (Debian) Server Port 80</address>


Mi duda esta en el protocolo de transferencia HTTP he leido sobre los metodos de Peticion
y he intentado el get
Código: text
GET /folder1/lweb/index.html HTTP/1.1 


pero no consigo obtener la info del index.

como podria en si manipular el HTTP para comunicarme con el servidor?
de antemano gracias.


Agosto 02, 2016, 12:49:13 AM #1 Ultima modificación: Agosto 02, 2016, 12:54:43 AM por grep
A pesar de que es un request correcto según las especificaciones rfc7230 (No tienes permitido ver enlaces. Registrate o Entra a tu cuenta) algunos servidores lo rechazan. Puedes probar agregando el header "Host" con el nombre del dominio:

Código: text
GET / HTTP/1.1\r\nHost: host:port\r\n\r\n


Si obtienes un código de estado 301, es posible que el servidor al que consultas utilice SSL, con lo cual el servidor quizás no pueda brindarte el contenido que deseas si no es a través de ese medio.


Saludos